检查分类是否至少附加到帖子类型中的一个帖子

时间:2013-06-20 作者:Francesco

检查post type中是否至少有一个postproductsled 学期I通常会这样做:

$query = array(\'numberposts\' => 1, \'post_type\' => array(\'products\'), \'television\' => \'led\');
$products = get_posts($query);

if ($products) {
echo \'At least one post has the term led\';
} else {
echo \'No post with the term led\';
}
有更好的方法吗?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

没关系。我在这个解决方案中看到的唯一问题是,选择所有帖子数据只是为了检查此类帖子是否存在(帖子可能很长)。

因此,在这种情况下,我会考虑使用自定义查询(它会给您分配此术语的帖子数量)

function my_count_posts_with_term($taxonomy, $term_slug, $post_type) {
    $term = get_term_by( \'slug\', $term_slug, $taxonomy );

    $count = $wpdb->get_var($wpdb->prepare(
        "SELECT COUNT(*) FROM {$wpdb->posts}
        INNER JOIN {$wpdb->term_relationships}
            ON ({$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id)
        INNER JOIN {$wpdb->term_taxonomy}
            ON ({$wpdb->term_relationships}.term_taxonomy_id = {$wpdb->term_taxonomy}.term_taxonomy_id)
        WHERE {$wpdb->posts}.post_type = %s
            AND {$wpdb->term_taxonomy}.taxonomy = %s
            AND {$wpdb->term_taxonomy}.term_id = %d;", $post_type, $taxonomy, $term->term_id));
    return $count;
}

结束

相关推荐

Custom taxonomy in short code

我在网格显示的主题中使用短代码。代码仅考虑类别ID。我还想添加自定义分类法,以便将输出作为分类帖子和自定义分类帖子。 function five_col( $atts ) { extract( shortcode_atts( array( \'cats\' => \'1\', \'num\' => \'2\', \'offset\' => \'0\', ), $atts ) );