+ 收藏我们

网站模板

网站模板搜索
404模板 营销型模板 外贸网站模板 单页模板 双语模板 标签大全
电话:18630701785
首页 > wordpress > 获取 WordPress 中某个分类中的文章数量的方法 >

获取 WordPress 中某个分类中的文章数量的方法

时间:2024-08-02 12:00:10

在 WordPress 数据库中,分类项目是有所属于该分类的文章数量这一项数据的,可是 WordPress 并没有为我们提供获取这个文章数量的函数。在开发WordPress主题或应用的时候,我们偶尔会用到这个数据,下面有两种获取某个分类中的文章数量的方法,有需要的朋友可以根据自己的喜好选用。

直接通过 SQL 查询的方法获取
这种方法是通过 SQL 查询直接获取的,获取到的数据只有该分类下的文章的数量,相对下面的方法来说,要简介一点。

复制
function wizhi_get_category_count($input = '') {
    global $wpdb;

    if($input == '') {
        $category = get_the_category();
        return $category[0]->category_count;
    }
    elseif(is_numeric($input)) {
        $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->term_taxonomy.term_id=$input";
        return $wpdb->get_var($SQL);
    }
    else {
        $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->terms.slug='$input'";
        return $wpdb->get_var($SQL);
    }
}
通过新建 WP_Query 查询的方法获取
这种方法是用了 WordPress 标准的自定义查询方法,获取的数据是该分类下所有文章的对象,有很多不必要的数据,性能上要比上面的方法稍差一点,但是代码更有 WordPress 风格,不会因为 WordPress 数据结构的更改而造成兼容性问题。

复制
if ( ! function_exists( 'wizhi_get_category_count' ) ) :
function wizhi_get_category_count( $cat_id ) {
    $q = new WP_Query( array(
        'nopaging' => true,
        'tax_query' => array(
            array(
                'taxonomy' => 'category',
                'field' => 'id',
                'terms' => $cat_id,
                'include_children' => true,
            ),
        ),
        'fields' => 'ids',
    ) );
    return $q->post_count;
}
endif;
注意:这两种方法获取出来的数据是一样的,采用其中的任意一种就可以了。

有问题可以加入网站技术QQ群一起交流学习

本站会员学习、解决问题QQ群(691961965)

客服微信号:lpf010888

pbootcms教程

织梦教程

站长学院

SEO

wordpress

竞价教程

信息流

Title