一,get_the_terms()与get_the_category()的区别
get_the_category 调用的就是 get_the_terms函数,只不过他的第二个参数带的是默认的 category
https://developer.wordpress.org/reference/functions/get_the_terms/
<?php get_the_terms( $id, 'category'); ?>
二,wp_list_categories()和get_categories()的区别
get_categories()函数可以获得分类(这个分类大概指的是wp默认自带的文章分类)所有信息,返回与查询参数相匹配的类别对象数组。变量与wp_list_categories()函数基本一致,且变量可被作为数组传递,也可在查询句法中被传递。
get_categories()更自由一些,可以自由添加元素的属性,而wp_list_categories()是直接输出一个列表,一般是分类的列表,包含li元素,但是如果想给这个li元素添加一个属性,例如bootstrap的nav-pills,这就比较困难了。
如果想简单输出分类的列表,不需要添加属性等,直接就可以使用wp_list_categories(),这个简单好用;如果想添加属性自由修改扩展则使用get_categories()。
get_categories()函数的语法结构如下:
<?php $categories = get_categories( $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 );
?>
三,get_the_terms()和get_terms()的区别(以下解释来源于网络,鸿硕尚未总结)
在WordPress Codex(https://developer.wordpress.org/)中,您可以找到:
对于get_the_terms:“Retrieves the terms of the taxonomy that are attached to the post./检索附加到该帖子的分类法条款。” https://developer.wordpress.org/reference/functions/get_the_terms/
对于get_terms:“Retrieves the terms in a given taxonomy or list of taxonomies./检索分类法或分类法列表中的术语。” https://developer.wordpress.org/reference/functions/get_terms/
因此,正如您所说,get_the_terms()将获得附加到帖子中的字词(例如类别),而get_terms()将检索分类法中的术语(例如类别分类法中的类别)。例如,get_terms('category')将返回您添加到WordPress网站的所有类别。
有些说,您可以在循环外部使用get_terms,而只能在循环内部使用get_the_terms。
但并非如此,您也可以在循环外部使用get_the_terms(),例如: $categories = get_the_terms( $id, 'product_cat' );
在get_the_terms中,您可以通过特定的post_id获取术语,但是在get_terms中,您可以获取一组post_id(即post)的值。
四,get_term_by()函数
可参考:https://developer.wordpress.org/reference/functions/get_term_by/
Examples
Examples to get terms by name and taxonomy type (taxonomy_name as category, post_tag or custom taxonomy).// Get term by name ''news'' in Categories taxonomy.
$category = get_term_by('name', 'news', 'category')// Get term by name ''news'' in Tags taxonomy.
$tag = get_term_by('name', 'news', 'post_tag')// Get term by name ''news'' in Custom taxonomy.
$term = get_term_by('name', 'news', 'my_custom_taxonomy')// Get term by name ''Default Menu'' from theme's nav menus.
// (Alternative to using wp_get_nav_menu_items)
$menu = get_term_by('name', 'Default Menu', 'nav_menu');
By id (term_id, not post_id):
// Get term by id (''term_id'') in Categories taxonomy.
get_term_by('id', 12, 'category')
五,get_term(),根据term的ID来获取这个term
一般用法:$term = get_term( $term_id, $taxonomy );
第一个参数一般写term的ID,第二个参数写分类方式,第三,第四个参数不常用。
例:$term = get_term( 26, 'product_cat' )
打印出测试数据为:
WP_Term Object ( [term_id] => 26 [name] => 珍珠饰品 [slug] => pearl-jewelry [term_group] => 0 [term_taxonomy_id] => 26 [taxonomy] => product_cat [description] => 巴洛克,珍珠等原创手作 [parent] => 0 [count] => 12 [filter] => raw )