WordPress 开发 2024年6月30日 约 25 分钟阅读

WordPress 获取分类信息

作者:ICai
发布时间:2024-06-30
分类:WordPress 开发

00. 函数介绍

get_categories() 是 WordPress 提供的一个核心函数,用于检索网站中已定义的分类目录。它返回一个数组,包含了各种有关分类的信息,比如分类的名称、ID、描述等。

函数原型

get_categories( string|array $args = '' ): array

01. 函数参数

该函数接受一个数组作为参数 $args,用于筛选和排序分类结果。常用的参数配置如下:

$args = array(
    'taxonomy'               => null,    // 指定分类法类型,默认为系统自带分类类型(仅在自行注册了分类的情况下使用)。
    'object_ids'             => null,    // 指定文章 ID(对应 wp_posts 表的 ID)。
    'orderby'                => 'name',  // 指定排序的类型,可选值: 'name', 'slug', 'term_group', 'term_id', 'id', 'description', 'parent', 'term_order'
    'order'                  => 'ASC',   // 排序方式: 'ASC'(升序)或 'DESC'(降序)
    'hide_empty'             => true,    // 是否隐藏空分类(即隐藏没有文章的分类)
    'include'                => array(), // 仅包含指定的分类 ID
    'exclude'                => array(), // 排除指定的分类 ID
    'exclude_tree'           => array(), // 排除分类的同时也会排除该分类下所有的子分类
    'number'                 => '',      // 返回结果的数量限制
    'offset'                 => '',      // 偏移量
    'fields'                 => 'all',   // 要查询的字段
    'count'                  => false,   // 是否返回分类包含的文章数量
    'name'                   => '',      // 返回指定名称的分类
    'slug'                   => '',      // 返回指定别名的分类
    'term_taxonomy_id'       => '',      // 返回指定 ID 的分类
    'hierarchical'           => true,    // 是否按层级返回分类
    'search'                 => '',      // 搜索匹配条件的分类
    'name__like'             => '',      // 返回分类名称包含某个关键词的分类
    'description__like'      => '',      // 返回分类描述包含某个关键词的分类
    'pad_counts'             => false,   // 是否将子标签的文章数量计算到 count 值中
    'get'                    => '',      // 字符串
    'child_of'               => 0,       // 返回指定分类的子分类及子子分类
    'parent'                 => '',      // 仅返回指定分类的直接子分类
    'childless'              => false,   // 返回没有子分类的分类
    'cache_domain'           => 'core',  // 唯一缓存键
    'cache_results'          => true,    // 是否缓存术语信息
    'update_term_meta_cache' => true,    // 是否为匹配的术语启动元缓存
    'meta_query'             => '',      // 元数据查询
    'meta_key'               => '',      // 元数据键的名称
    'meta_value'             => '',      // 元数据键的值
    'meta_type'              => '',      // 元数据值比较的数据类型
    'meta_compare'           => '',      // 元数据比较运算符
);

02. 函数返回值

函数执行成功后,返回一个包含 WP_Term 对象的数组。

返回值结构示例:

Array
(
    [0] => WP_Term Object
        (
            [term_id] => 6
            [name] => 示例
            [slug] => sample
            [term_group] => 0
            [term_taxonomy_id] => 6
            [taxonomy] => category
            [description] => 
            [parent] => 0
            [count] => 0
            [filter] => raw
            [cat_ID] => 6
            [category_count] => 0
            [category_description] => 
            [cat_name] => 示例
            [category_nicename] => sample
            [category_parent] => 0
        )
    // ...
)

03. 基础示例

下面是一个最基础的使用示例,用于获取所有顶级分类并输出它们的名称:

<?php

$categories = get_categories( array(
    'orderby' => 'name',
    'parent'  => 0
) );
 
foreach ( $categories as $category ) {
   echo '<p>' . $category->name . '</p>';
}

?>