在wordpress中,我创建了2种自定义帖子类型Services
& Work
可以使用wp默认类别和标记分类法。
在任何给定的单个帖子页面上,我需要列出该帖子类型的可用类别。
我试过用过
$args = array( 'hide_empty' => 1, 'taxonomy' => 'category' ); wp_list_categories( $args );
仅列出与帖子相关联的那些类别,但列表不考虑帖子类型。
我如何仅列出该帖子类型使用的类别?
答案 0 :(得分:2)
回答问题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');
等。