2016-11-01 3 views
1

В wordpress Я создал 2 пользовательских типа сообщений Services & Work, которые могут использовать стандартную категорию по умолчанию и теги таксонов.WP только отображает категории, содержащие записи из этого сообщения.

На каждой отдельной странице сообщения мне нужно указать категории, доступные для этого типа сообщений.

Я пробовал использовать $args = array('hide_empty' => 1, 'taxonomy' => 'category'); wp_list_categories($args); , чтобы перечислять только те категории с сообщениями, но список не учитывает типы сообщений.

Как я могу только перечислить категории, используемые этим типом сообщения?

ответ

1

Вопрос ответил here:

Поместите следующее в вашем functions.php:

function wp_list_categories_for_post_type($post_type, $args = '') { 
    $exclude = array(); 

    // Check ALL categories for posts of given post type 
    foreach (get_categories() as $category) { 
     $posts = get_posts(array('post_type' => $post_type, 'category' => $category->cat_ID)); 

     // If no posts found, ... 
     if (empty($posts)) 
      // ...add category to exclude list 
      $exclude[] = $category->cat_ID; 
    } 

    // Set up args 
    if (! empty($exclude)) { 
     $args .= ('' === $args) ? '' : '&'; 
     $args .= 'exclude='.implode(',', $exclude); 
    } 

    // List categories 
    wp_list_categories($args); 
} 

Теперь вы можете вызвать wp_list_categories_for_post_type('photos'); или wp_list_categories_for_post_type('videos', 'order=DESC&title_li=Cats'); и тому подобное.

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