我有一个称为“水果”的自定义帖子类型,在这个类型下,我有一个称为“水果类别”的层次分类法
当我在Fruit下创建一个新帖子时,我可以将其分配到一个“术语”,就像您在普通帖子类别下一样,但在Fruit Categories分类下。
我在Fruit上增加了三个职位,每个职位分别分配给一个任期;“苹果”、“梨”和“香蕉”。
所有这些都很好,但现在我想创建一个归档页面,简单地列出UL中的术语,用于自定义帖子类型,如下所示;
我的网站。玉米/水果
我面临的问题是,我使用的每个查询似乎只返回第一个词Apples。其他两个没有显示,我尝试了许多代码片段,都有相同的效果。
一些我尝试过的事情;
$term_list = wp_get_post_terms($post->ID, \'fruit_categories\', array("fields" => "all")); print_r($term_list);
以及
$terms = wp_get_post_terms($post->ID,\'fruit_categories\');
$count = count($terms);
if ( $count > 0 ){
echo "<ul>";
foreach ( $terms as $term ) {
echo \'<li><a href="\'.get_term_link($term->slug, \'fruit_categories\').\'">\'. $term->name . "</a></li>";
}
echo "</ul>";
}
我也尝试了这里建议的技巧,但是,这仍然会导致相同的问题,只列出了第一个术语。
https://stackoverflow.com/questions/15502811/display-current-post-custom-taxonomy-in-wordpress
这是一个没有插件的全新安装。
我是否需要添加foreach循环来引入其他术语?还是我在这里遗漏了什么?
我也一直在看wp\\u get\\u object\\u术语,但我真的不知道如何使用它。
当我进行屏幕转储时,我会在mysite/fruit上看到以下内容
苹果
数组([0]=>stdClass对象([term\\u id]=>43[name]=>Apples[slug]=>Apples[term\\u group]=>0[term\\u taxonomy\\u id]=>43[taxonomy]=>fruit\\u categories[description]=>[parent]=>0[count]=>2))
值得一提的是,这是我的自定义帖子类型和分类注册表代码http://pastebin.com/K8kwuzqt
非常感谢您的帮助。
最合适的回答,由SO网友:GhostToast 整理而成
我误解了你之前的意图。我以为你想列出与某个特定职位相关的术语——你现在所在的职位。哎哟!
请尝试以下操作:
$terms = get_terms(\'fruit_category\');
if(!empty($terms)){
echo "<ul>";
foreach ( $terms as $term ) {
echo \'<li><a href="\'.get_term_link($term->slug, \'fruit_categories\').\'">\'. $term->name . "</a></li>";
}
echo "</ul>";
}
这将为您提供指向
term
页面,前提是每个学期至少有一篇帖子。
更新:
要更动态地获取分类术语,可以执行以下操作:
// taxonomy term archives
$post_type = get_post_type();
$taxonomies = get_object_taxonomies($post_type);
if(!empty($taxonomies)){
foreach($taxonomies as $taxonomy){
$terms = get_terms($taxonomy);
if(!empty($terms)){
echo "<ul>";
foreach ( $terms as $term ) {
echo \'<li><a href="\'.get_term_link($term->slug, $taxonomy).\'">\'. $term->name . "</a></li>";
}
echo "</ul>";
}
}
}