2012-03-29 65 views
0

當涉及到圖片附件時,wordpress具有非常棒的功能 - 但我找不到任何關於如何獲取不是圖片附件的文檔。wordpress獲取不是圖片的附件

現在,我寫了這個功能:

function ok99_get_post_file_attachment($mime='application/pdf',$limit=-1) { 
    global $post; 
    $attachments = get_children(array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment','post_mime_type' => $mime, 'order' => 'ASC', 'orderby' => 'menu_order ID', 'posts_per_page'=>$limit)); 

    if ($attachments) { 
     echo 'Your Attachments : <br/>'; 
     foreach ($attachments as $att) { 
     //$attachment = array_shift($attachments); // debug to delete 
     echo wp_get_attachment_url($att->ID) . '<br/>'; 
     the_attachment_link($attachment->ID, false);} 
    } 

    return false; 
} 

我的問題是:這是獲得所有非圖片附件的唯一途徑? 有沒有辦法做到這一點,沒有另一個查詢?

回答

0

看來,我再一次需要回答自己 - 也因爲我沒有其他的輸入,這個問題

似乎有這樣做(指沒有其他的辦法 - 有很多的方法 - 但並非沒有其他直接查詢)

+0

我有點晚這個派對,所以也許你的問題已經發生了變化,但是無論如何,看到我的答案是一個一個查詢的解決方案!:) – Simon 2014-02-13 13:35:05

0

我通過指定MIME類型,像這樣得到的非圖像附件:

if ($attachments = get_children(array(
    'post_type' => 'attachment', 
    'post_mime_type' => array('application/doc','application/pdf', 'text/plain'), 
    'numberposts' => 15, 

))); 
foreach ($attachments as $attachment) { 
echo '<a href="' . wp_get_attachment_url($attachment->ID) . '">Download Fact Sheet</a>'; 
echo '</div>'; 
} 
+0

如果文檔不是這三種類型之一呢? – durron597 2012-11-30 18:35:03

+0

只需添加到列出MIME類型的數組中 – rezon8dev 2012-12-03 16:59:33

+0

與我在原始問題中寫的內容有何不同? – 2014-02-13 15:40:31

1

我使用這種技術用於查詢的圖像,或沒有圖像或視頻文件,即「否定」MIME類型查詢。它返回後對象(類似於將由get_posts()返回數組,並可以很容易地使用vsprintf()進行修改,以排除其他類型的連接介質,或取得完全通用。

function wpse9927425_get_downloads($post_id) { 
    global $wpdb; 

    $sql_query = $wpdb->prepare(
     "SELECT * FROM $wpdb->posts 
     WHERE post_type = %s 
      AND post_parent = %d 
      AND post_mime_type NOT LIKE %s 
      AND post_mime_type NOT LIKE %s 
     ORDER BY menu_order, post_title ASC", 
     'attachment', 
     $post_id, 
     'image/%', 
     'video/%' 
    ); 
    $files = $wpdb->get_results($sql_query); 

    return $files; 
} 
+0

+1謝謝。儘管我的原始問題是爲了這樣做而不需要額外的查詢 - 這種技術確實非常有趣。 – 2014-02-13 15:39:40