验证一个类别是否为另一个类别的子级

时间:2021-07-12 作者:Răuțu Denis

有没有办法验证一个类别是否是另一个类别的子类别?例如,如果我有衣服类别,在该类别中,我有t恤作为子类别。做一些类似的事情:是父类服装吗?是,因此显示文本。我希望你能理解我。提前感谢!

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

是的,您可以使用两种功能:

对于默认值category 分类法,您可以使用cat_is_ancestor_of():

// Retrieve category object by slug:
$parent_cat = get_category_by_slug( \'clothes\' );  // term object
$child_cat  = get_category_by_slug( \'t-shirts\' ); // term object

/* Or retrieve category ID by name:
$parent_cat = get_cat_ID( \'Clothes\' );  // term ID
$child_cat  = get_cat_ID( \'T-Shirts\' ); // term ID
*/

if ( cat_is_ancestor_of( $parent_cat, $child_cat ) ) {
    echo \'t-shirts is child of clothes\';
}
对于自定义分类法,可以使用term_is_ancestor_of():

// Set the custom taxonomy\'s slug:
$taxonomy = \'my_taxonomy\';

// Retrieve term object by slug:
$parent_cat = get_term_by( \'slug\', \'clothes\', $taxonomy );
$child_cat  = get_term_by( \'slug\', \'t-shirts\', $taxonomy );
/* Or name, if you want:
$parent_cat = get_term_by( \'name\', \'Clothes\', $taxonomy );
$child_cat  = get_term_by( \'name\', \'T-Shirts\', $taxonomy );
*/

if ( term_is_ancestor_of( $parent_cat, $child_cat, $taxonomy ) ) {
    echo \'t-shirts is child of clothes\';
}
请注意cat_is_ancestor_of() 实际上是一个包装器(即它使用)term_is_ancestor_of() 它可以接受术语ID或对象,例如cat_is_ancestor_of( 1, 2 )term_is_ancestor_of( 3, 4, \'my_taxonomy\' ) 其中数字如下13 是术语ID。

相关推荐

WordPress用户Meta&ChromePHP或以其他方式调试/查看php变量

我正在开发一个插件来扩展BuddyBoss平台。具体来说,我正在将BB用户信息与Wordpress用户元数据同步。我的大部分代码都能正常工作(国家和地区组织更新良好),但同步我的“性别”字段并没有按预期工作。它似乎适用于男性和女性,但当选择“其他”时,它会将wordpress用户元字段设置为“女性”。我有两个问题:你能看到这段代码有什么问题吗:(忽略所有5次控制台输出尝试-这是我下面的第二个问题!)function BB_WP_SYNC_update_wordpress_usermeta( $user_i