2016-02-21 3 views
0

Я хочу использовать этот скрипт, чтобы перечислить все пути принадлежности для должностей определенной категории:Список всех вложений для конкретной категории

<?php 
    $args = array( 
     'post_type'  => 'attachment', 
     'numberposts' => -1, 
     'category'  => 61 
    ); 
    $the_attachments = get_posts($args); 
    if ($the_attachments) { 
     foreach ($the_attachments as $post) { 
      setup_postdata($post); 
      echo get_attached_file($post->ID) . "<br />"; 
     } 
    } wp_reset_query(); 
    ?> 

Но проблема в том, что ничего не делать, если я не удалить " category 'arg, и в этом случае он показывает ВСЕ пути привязки независимо. Но я только хочу его для категории 61.

Я тройной проверил и действительно есть сообщения, которые содержат вложения в категории 61.

Что я делаю неправильно?

Заранее спасибо.

ответ

3

Категория не таксономия для attachment Тип сообщения. post и attachment - это два разных типа почтовых отправлений и category прилагается к post и attachments являются детьми post.

Так сначала получить всю почту в этой категории

$cat_posts = get_posts(array(
    'category' => 61, 
    'numberposts' => -1 
)); 

Создать массив почтовых идентификаторов, чтобы мы могли использовать в WP_Query

$parent_ids = array_map('get_post_ids', $cat_posts); 

function get_post_ids($post_obj) { 
    return isset($post_obj->ID) ? $post_obj->ID : false; 
} 

Теперь получить все ребенок всех родительских идентификаторов

$the_attachments = get_posts(array(
    'post_parent__in' => $parent_ids, 
    'numberposts' => -1, 
    'post_type' => 'attachment' 
)); 

Отображать вложения

if ($the_attachments) { 
    foreach ($the_attachments as $my_attachment) { 
     echo wp_get_attachment_image($my_attachment->ID); 
    } 
} 

Примечание: post_parent__in доступна только начиная с версии 3.6

+0

Bravo, он работает как шарм и реквизита для объяснения. Я не понимал, что категории не имеют таксономии для типов сообщений о прикреплении. – user3256143

Смежные вопросы