GET_POST_TERMS未按预期工作

时间:2013-06-18 作者:SolaceBeforeDawn

我有一个称为“水果”的自定义帖子类型,在这个类型下,我有一个称为“水果类别”的层次分类法

当我在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

非常感谢您的帮助。

1 个回复
最合适的回答,由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>";
        }
    }
}

结束

相关推荐

Top level parent taxonomy ID

在产品归档页面的顶部,我试图显示产品类别列表。规则应该是列表始终显示顶级的直接子级。关于WPA有几个答案,我一直在尝试实施(以我的最低技能),但我遗漏了一些东西。以下是查询: <?php $taxonomy = \'product_cat\'; $orderby = \'name\'; $order = \'DESC\'; $show_count = 0; // 1 for