自定义帖子类型中未显示自定义帖子类型类别

时间:2013-01-08 作者:hiiambo

我在Wordpress的后端创建了一个新的自定义帖子类型(称之为“评论”)。它在大多数情况下工作正常,但我在该自定义帖子类型中创建的类别没有显示在元框上。

例如,在一篇普通的帖子中,应该说“在类别X中”。在自定义帖子类型中,该字段为空。以下是两个示例:

正常工作:http://gamingsirs.com/?p=1不工作:http://gamingsirs.com/?reviews=test

<?php $category_list = get_the_category_list( __( \', \', \'standard\' ) ); ?>
<?php if( $category_list ) { ?>
<?php printf( \'<span class="the-category">\' . __( \'%1$s\', \'standard\' ) . \'</span>\', $category_list ); ?>
<?php } // end if ?>
您可以看到类别区域为空。如有任何关于如何展示的建议,我们将不胜感激。

3 个回复
SO网友:Bainternet

简单使用get_the_term_list

例如:

echo get_the_term_list( $post->ID, Taxonomy_NAME, \'<span class="the-category">\', \', \', \'</span>\' );
只需将Taxonomy\\u NAME更改为您的类别分类名称,如果是默认类别分类,则将其更改为\'category\'

SO网友:Tom J Nowell

您当前正在使用get_the_category_list, 这将列出“类别”分类法的所有术语。默认情况下与WordPress捆绑在一起的其他分类法包括标记,它们不是一些人认为的post meta,也不是专用表。

因此,它们与所有其他分类术语API一起工作。因此,使用get_term_list, 将审阅类别分类的名称作为第二个参数传入。

我也不会这么做if ( $category_list ), 相反,这样做就不那么模棱两可了:if ( !empty( $category_list ) )

e、 g.如果与标准类别一起使用:

global $post;
$terms =  get_the_term_list( $post->ID, \'category\', \'<span class="the-category">\', \', \', \'</span>\' );
if( !empty($terms) ){
    echo $terms;
} else {
    // none found?
}
对于更细粒度的控制,可以使用wp_get_object_terms

e、 g。

$terms = wp_get_object_terms($post->ID, \'category\');
if(!empty($terms)){
    if(!is_wp_error( $terms )){
        foreach($terms as $term){
            echo \'<span class="the-category"><a href="\'.get_term_link($term->slug, \'category\').\'">\'.$term->name.\'</a></span>\'; 
        }
    }
} else {
    // no terms found
}
这将允许您使用术语ID访问术语元,如果设置正确,可以使用术语ID存储颜色和图像ID。

如果可能,请始终使用面向术语的函数,而不是特定于类别和标记的函数。WordPress最终会在内部使用它们来做同样的事情,这使得处理自定义分类法变得非常简单,因为您只需要学习一个API,而不是2个。

SO网友:Bucur Ion

此代码适用于我。。。分类组合:

<span class="post-category"><?php _e(\'In\', \'owd\'); ?> <?php the_terms( $post->ID, \'portfolio_category\', \'\', ", ", \'\' ); ?></span>

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在