WordPress获取分类函数get_terms()、get_categories()、wp_list_categories()
get_terms()
get_terms(数组|字符串 $args = 数组(), 数组|字符串 $deprecated = ” )
get_terms()不仅可以获取分类,还可以获取标签,分类:category,标签:post_tag
在 4.5.0 之前,第一个参数get_terms()
是分类法或分类法列表:
$terms = get_terms( 'post_tag', array(
'hide_empty' => false,
) );
从 4.5.0 开始,分类法应该通过$args
数组中的 ‘taxonomy’ 参数传递:
$terms = get_terms( array(
'taxonomy' => 'post_tag',
'hide_empty' => false,
) );
所以从4.5.0开始,get_terms使用get_terms($array),获取标签:taxonomy=>post_tag,获取分类:taxonomy=>category。
常用参数:
taxonomy | category/post_tag ,不填默认返回所有分类和标签 |
orderby | 默认值为’name’,可以是名称,计数或空(使用term_id) |
order | 默认值为ASC。有效值也包括DESC。 |
hide_empty | 默认值为true。不返回空$terms。 |
fields | 默认值为all |
slug | 任何含有slug的term都可以作为该变量的值。默认为空字符串。 |
hierarchical | 是否返回层级分类法。默认值为true。 |
name_like | 默认值为空字符串。 |
pad_counts | 默认值为FALSE。值为true时将计算包括$terms在内的所有子辈。 |
get | 默认值为空。可通过为’all’赋值来改写’hide_empty’和’child_of’。 |
child_of | 默认值为0。获取该term的所有后代。 |
parent | 默认值为0。获取该term的直系子辈(即上辈明确为该值的term)。 |
get_categories
通过函数get_categories()就可以输出 WordPress 获取所有分类列表。
<?php $categories = get_categories( $args ); ?>
$args默认值
<?php
$args = array(
'type' => 'post',
'child_of' => 0,
'parent' => '',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 1,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'taxonomy' => 'category',
'pad_counts' => false
);
?>
参数说明:
type | (字符)post和link 其中link在新版3.0以后已被弃用 |
child_of | (整数)仅显示标注了编号的分类的子类。该参数无默认值。使用该参数时应将hide_empty参数设为false |
parent | (整数)只显示某个父级分类以及下面的子分类(注:子分类只显示一个层级)。 |
orderby | (字符)将分类按字母顺序或独有分类编号进行排序。默认为按分类 编号排序包括ID(默认)和Name |
order | (字符)为类别排序(升序或降序)。默认升序。可能的值包括asc(默认)和desc |
hide_empty | (布尔值)触发显示没有文章的分类。默认值为true(隐藏空类别)。有效的值包括:1(true)和0(false) |
hierarchical | (布尔值)将子类作为内部列表项目(父列表项下)的层级关系。默认为true(显示父列表项下的子类)。有效值包括1 (true)和0(false) |
exclude | (字符)除去分类列表中一个或多个分类,多个可以用逗号分开,用分类ID号表示 |
include | (字符)只包含指定分类ID编号的分类。多个可以用逗号分开,用分类ID号表示 |
number | (字符)将要返回的类别数量 |
pad_counts | (布尔值)通过子类中的项来计算链接或文章。有效值包括1(true)和0(false),0为默认 |
taxonomy | (字符)返回一个分类法,这个是wordpress3.0版本后新添加的一个参数。返回的值包括category(默认)和taxonomy(一些新定义的分类名称) |
wp_list_categories()
显示或检索类别的 HTML 列表。wp_list_categories( string|array $args = ” )
默认用法及参数说明
<?php
wp_list_categories( $args );
$args = array(
'show_option_all' => '',//是否列出分类链接
'orderby' => 'name',//按名称排列
'order' => 'ASC',//升、降序
'style' => 'list',//是否用列表(ul>li)
'show_count' => 0,//是否显示文章数量
'hide_empty' => 1,//是否显示无日志分类
'use_desc_for_title' => 1,//是否显示分类描述
'child_of' => 0,//是否限制子分类
'feed' => '',//是否显示rss
'feed_type' => '',//rss类型
'feed_image' => '',//是否显示rss图片
'exclude' => '',//排除分类的ID,多个用',(英文逗号)'分隔
'exclude_tree' => '',//排除分类树,即父分类及其下的子分类
'include' => '',//包括的分类
'hierarchical' => true,//是否将子、父分类分级
'title_li' => __( 'Categories' ),//列表标题的名称
'show_option_none' => __('No categories'),//无分类时显示的标题
'number' => null,//显示分类的数量
'echo' => 1,//是否显示,显示或者返回字符串
'depth' => 0,//层级限制
'current_category' => 0,//添加一个没有的分类
'pad_counts' => 0,//这个我也不明白
'taxonomy' => 'category',//使用的分类法
'walker' => null//用于显示的类
?>
参数说明:
show_option_all | 指定站点首页的超链接,首页的名称(字符串) |
order | 升序或降序,ASC升序(默认)、DESC降序 |
style | 分类列表显示的样式,list输出li,none 使用标签分隔列表项 |
show_count | 是否显示文章数量(true|false,1|0) |
hide_empty | 是否隐藏没有文章的分类(true|false,1|0) |
use_desc_for_title | 是否在链接显示 title 属性(true|false,1|0) |
child_of | 只显示此参数确定的分类的子分类,为8显示ID为8的分类的子分类,为0则显示分类的所有子类 |
exclude | 排除一个或多个分类。使用逗号分隔每个分类的ID,参数 include 必须为空。 |
exclude_tree | 排除分类树。使用逗号分隔每个分类的ID,参数 include 必须为空。 |
include | 只显示特定的分类,使用逗号分隔每个分类的ID |
hierarchical | 是否按层级显示分类(true|false,1|0) |
title_li | 设置列表的标题,默认为“Categories”。 传递空字符串禁用 |
echo | 显示结果或保存在一个变量里(true|false,1|0) |
depth | 显示分类的深度(即显示多少层的子分类) 0 – 所有分类和子分类(默认) -1 – 所有类别显示在平面(不缩进)的形式(覆盖hierarchical)。 1 – 只显示顶级分类 n – 任意大于1的值,根据n的具体数字来显示对应等级的分类。 |
current_category | 默认为0,在当前分类下加样式值,便于美化 为0则根据页面动图添加当前样式值,填指定分类id,则仅在指定分类中添加样式值 |
pad_counts | 父分类的文章数是否包括子分类的链接或文章数。(true|false,1|0) |
taxonomy | 给定分类法,默认category |
所有参考参数:
taxonomy | (string|string[])分类名称或分类名称数组,结果应限制在其中。category/post_tag ,不填返回分类和标签 |
object_ids | (int|int[])对象 ID,或对象 ID 数组。结果将仅限于与这些对象相关的术语。 |
orderby | (string)用于排序术语的字段。接受: 术语字段(’name’、’slug’、’term_group’、’term_id’、’id’、’description’、’parent’、’term_order’)。除非$object_ids不为空,否则“term_order”与“term_id”被视为相同。 ‘count’ 使用与术语关联的对象的数量。 “包括”以匹配$include参数的“顺序”。 ‘slug__in’ 以匹配$slug参数的 ‘order’。 “元值” ‘meta_value_num’。 的值$meta_key。 的数组键$meta_query。 ‘none’ 省略 ORDER BY 子句。默认“名称”。 |
order | (string)是否按升序或降序对术语进行排序。接受“ASC”(升序)或“DESC”(降序)。默认“ASC”。 |
hide_empty | (bool|int)是否隐藏未分配给任何帖子的术语。接受 1|true 或 0|false。默认 1|真。 |
include | (int[]|string)要包含的术语 ID 的数组或逗号/空格分隔的字符串。默认空数组。 |
exclude | (int[]|string)要排除的术语 ID 的数组或逗号/空格分隔的字符串。如果$include为非空,$exclude则忽略。默认空数组。 |
exclude_tree | (int[]|string)要排除的术语 ID 及其所有后代术语的数组或逗号/空格分隔字符串。如果$include为非空,$exclude_tree则忽略。默认空数组。 |
number | (int|string)要返回的最大术语数。接受 ”|0(全部)或任何正数。默认 ”|0(全部)。 |
offset | (int)术语查询的偏移量。 |
fields | (字符串)要查询的术语字段。接受: ‘all’ 返回完整术语对象的数组 ( WP_Term[])。 ‘all_with_object_id’ 返回带有 ‘object_id’ 参数 ( WP_Term[]) 的术语对象数组。仅在$object_ids填充参数时有效。 ‘ids’ 返回术语 ID 的数组 ( int[])。 ‘tt_ids’ 返回术语分类 ID 的数组 ( int[])。 ‘names’ 返回术语名称数组 ( string[])。 string[]’slugs’ 返回术语 slugs ( )的数组。 ‘count’ 返回匹配项的数量 ( int)。 int[]’id=>parent’ 返回由术语 ID ( )键入的父术语 ID 的关联数组。 ‘id=>name’ 返回术语名称的关联数组,以术语 ID ( string[]) 为键。 ‘id=>slug’ 返回术语 slug 的关联数组,以术语 ID ( string[]) 为键。默认“全部”。 |
count | (bool)是否返回术语计数。如果为真,将优先于$fields. 默认假。 |
name | (string|string[])要为其返回术语的名称或名称数组。 |
slug | (string|string[])要为其返回术语的 Slug 或 slug 数组。 |
term_taxonomy_id | (int|int[])术语分类 ID 或术语分类 ID 数组,用于在查询术语时进行匹配。 |
hierarchical | (bool)是否包含具有非空后代的术语(即使$hide_empty设置为 true)。默认为真。 |
search | (string)搜索条件以匹配术语。将在前后使用通配符进行 SQL 格式化。 |
name__like | (string)检索具有 LIKE 条件的术语$name__like。 |
description__like | (string)检索描述为 LIKE 的术语$description__like。 |
pad_counts | (bool)是否在每个术语的“count”对象变量的数量中填充术语的子项的数量。默认假。 |
get | (string)是否返回术语而不考虑祖先或术语是否为空。接受“全部”或“”(禁用)。 |
child_of | (int)检索子术语的术语 ID。如果通过了多个分类,$child_of则忽略。默认为 0。 |
parent | (int)要检索其直接子项的父项 ID。 |
childless | (bool) True 将结果限制为没有子项的项。此参数对非分层分类法没有影响。默认假。 |
cache_domain | (string)当此查询存储在对象缓存中时要生成的唯一缓存键。默认“核心”。 |
update_term_meta_cache | (bool)是否为匹配项设置元缓存。默认为真。 |
meta_key | (string|string[])要过滤的元键或键。 |
meta_value | (string|string[])要过滤的元值或值。 |
meta_compare | (string) MySQL 运算符,用于比较元值。 |
meta_compare_key | (string) MySQL 运算符,用于比较元键。 |
meta_type | (string) meta_value 列将被 CAST 用于比较的 MySQL 数据类型。 |
meta_type_key | (string) meta_key 列将被 CAST 用于比较的 MySQL 数据类型。 |
meta_query | (array) WP_Meta_Query参数的关联数组。 |