2012-03-29 3 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

私は少し遅れによあなたの質問が投稿されてからおそらく何かがWordPressで変更されているかもしれませんが、とにかく、私の答えは1つの質問の解決策を参照してください:) – Simon

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

文書がこれらの3つのタイプのうちの1つではない場合はどうなりますか? – durron597

+0

mimeの種類を列挙する配列に追加してください – rezon8dev

+0

元の質問に書いたものとはどう違うのですか? –

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ありがとうございます。私の元々の質問は、追加のクエリなしでそうする方法でしたが、このテクニックは本当に面白いです。 –

関連する問題