输出帖子的分类:无法使‘Get_the_Taxonomies’正常工作

时间:2011-02-23 作者:grrrbytes

我想在“title”属性中输出与帖子相关联的分类法,因此它需要不格式化。我知道get\\u terms和get\\u terms\\u list,但问题是,您需要提供您想要在正手时使用的分类法。但如果您有一个归档页面,其中列出了多种不同的post\\u类型,该怎么办。。。您不知道哪些分类法与某个帖子相关,因为您不知道它是哪种帖子类型。所以我尝试了这个:

$posttaxonomies = get_the_taxonomies();
  if ($posttaxonomies) {
    foreach($posttaxonomies as $taxonomy) {
      $thetaxonomies .= $taxonomy->name . \' \'; 
  }  
}
它不会输出任何东西。我知道我一定做错了什么,但我被难住了。

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

如果你在循环中,你可以使用get_post_taxonomies 像这样:

$taxs = get_post_taxonomies($post->ID);
foreach ($taxs as $tax){
    // $tax holds the taxonomy name so you can
    //use either get_terms or get_terms_list
}
更新我会更好地解释,因为你不知道帖子类型是什么,也不知道与该类型相关的分类法是什么,你首先会得到与每个帖子相关的分类法列表(无论帖子类型是什么),如下所示:

$taxs = get_post_taxonomies($post->ID);
现在$taxs是一个数组,它保存与循环中当前帖子相关联的分类名称。因此,我们可以运行foreach循环,使用get\\u terms或get\\u terms\\u list为每个分类法输出特定于post的术语,例如:

 $taxs = get_post_taxonomies($post->ID);
 foreach ($taxs as $tax){
    $before = $tax . ": ";
    echo get_the_term_list( $post->ID, $tax, $before, \' \', \'\' );
 }
更新2如果你不想回显post\\u标签,那么只需检查并跳过它,至于只获取术语而不是格式化的html使用wp_get_object_terms 而不是get_the_term_list 比如:

$taxs = get_post_taxonomies($post->ID);
foreach ($taxs as $tax){
    if (!$tax = "post_tags"){ //exclude tags
        print_r(wp_get_object_terms( $post->ID, $tax)); // its an array of the terms
    }
}

结束

相关推荐

posts and cms and posts again

我正在建立一个可湿性粉剂网站作为一个CMS,将出售CD。我在一个我称之为录音的页面上设置了单独的标题,并有许多类别组成了光盘集。不过,我不确定这是否是将网站设置为CMS的最佳方式。此外,我想在网站的“关于我们”部分下设置另一个博客页面。这是否可能,因为我已经将录制页面分配为帖子页面?或者我可以只在帖子页面上写一个博客条目,然后只调用那些帖子吗?除了使用POST方法之外,还有没有更好的方法来创建“录音”数据库?