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 :(得分:1)
我正在使用这种技术来查询图像或图像或视频文件,即“负面”mime类型查询。它返回一个post对象数组(类似于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;
}
答案 1 :(得分:0)
似乎再一次我需要回答自己 - 也因为我没有对此问题的其他意见
似乎没有其他方法可以做到这一点(意思是 - 有很多方法 - 但没有其他直接查询)
答案 2 :(得分: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>';
}