get_term_by(),get_the_terms(),get_terms(),get_the_category()等wordpress函数的区别

一,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
)

给TA打赏
共{{data.count}}人
人已打赏
IT百科jqueryjs

jquery条件判断之后,非click或hover触发,直接给元素添加属性

2021-11-20 12:18:28

IT百科教程

swiper自定义导航按钮的左右箭头图标

2022-2-5 20:04:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索