Check if tag contains posts

时间:2016-09-19 作者:hyp0thetical

嘿,我正在尝试想出一些逻辑,如果标签包含任何帖子

我找到了以下类别代码

<?php if (get_category(\'17\')->category_count > 0) { ?>

<?php } ?>
我试着用get_tag 代替get_category 这不起作用。我想这可能是因为category_count 无法与标记分类法一起使用,但我在codex中找不到任何等效的标记

非常感谢。

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

您可以使用:

<?php if (get_tag(\'17\')->count > 0) { ?>

<?php } ?>
get_tag 基本上是get_term 使用分类法post_tagget_term 退货WP_Term 对象成功,WP_Error 错误时。

WP_Term 具有属性$count 其中包含正在处理的术语的对象计数。

SO网友:birgire

下面是另一种使用get_term_field():

$count = get_term_field( \'count\', 17, \'post_tag\' );

if( is_int( $count ) && $count > 0 )
{
    // tag contains posts
}   
我们检查输出是否是大于零的整数。

然后,我们可以创建自定义包装:

/**
 * Check if a term has any posts assigned to it
 *
 * @param  int|WP_Term|object $term
 * @param  string             $taxonomy 
 * @return bool 
 */
function wpse_term_has_posts( $term, $taxonomy )
{
    $count = get_term_field( \'count\', $term, $taxonomy );
    return is_int( $count ) && $count > 0;  
}
用法示例:

if( wpse_term_has_posts( 17, \'post_tag\' ) )
{
    // do stuff
}