当同一术语在分层分类中出现两次时,Get_Term_By如何知道要返回哪个术语?

时间:2012-04-07 作者:Average Joe

这是抄本上的。

<?php get_term_by( $field, $value, $taxonomy, $output, $filter ) ?>
假设我有一个分类系统,如下所示;

分类法:“健康食品”是一种层次分类法,你的层次结构与此一模一样;

healthy foods
    fruits
        red ones
        green ones
    veggies
        red ones
        green ones
你可以使用get_term_by 功能如下:;

get\\u term\\u by(“名称”、“红色”、“健康食品”)

你有蔬菜还是水果?

2 个回复
最合适的回答,由SO网友:scribu 整理而成

get_term_by() 只返回第一个匹配项,“first”表示MySQL中的一些内部顺序。

如果有多个同名术语在您的情况下很重要,请不要依赖get_term_by() 单独地

SO网友:John Dorner

您将得到WP在数据库查询中找到的第一个WP。要获取两个匹配的术语,请使用:

get_terms( [ \'taxonomy\'=>\'healthy foods\', \'name\'=>\'red ones\', \'hide_empty\' => 0 ] )

请参见:https://developer.wordpress.org/reference/functions/get_terms/

结束

相关推荐

使用GET_TERMS筛选器从“管理类别”中排除类别

我正在使用get\\u terms上的过滤器(见下文)从“管理类别”列表中删除指定数量的命名类别。它工作得很好,但是,排除的类别仍然在“搜索类别”按钮下方显示的类别计数字段中计数。我可以从计数中减去这些类别吗?function admin_edit_tags() {add_filter( \'get_terms\', \'admin_trim_category_description\', 10, 2 );} function admin_trim_category_descriptio