我想知道如何检查当前的单个帖子或当前类别是否是某个类别的子级, 具有任何深度。
例如:
Cat1>
Cat2>
Cat3>
Cat4>
Post1
【如何检查当前帖子或类别是否是某个类别的后代()】检查Post1是否为Cat1的子代
并检查Cat4是否为Cat1的子代
#1在上述情况下, 此函数返回true。否则为假。
<
?php
function post_or_category_descendant_of( $category_id ) {
if( is_category() &
&
( is_category( $category_id ) || cat_is_ancestor_of( $category_id, get_queried_object() ) ) ) {
return true;
} else if( is_single() ){$post_id = get_queried_object()->
id;
$post_categories = get_the_category( $post_id );
$post_cat_ids = array();
foreach( $post_categories as $pc ) {
$post_cat_ids[] = $pc->
cat_ID;
}$args = array( 'child_of' =>
$category_id, 'fields' =>
'ids' );
$target_cat_ids = get_categories( $args );
$target_cat_ids[] = $category_id;
if( array_intersect( $post_cat_ids, $target_cat_ids ) ) {
return true;
} else {
return false;
}} else {
return false;
}
}
推荐阅读
- 如何以编程方式更改WordPress的默认帖子永久链接()
- 页面加载后如何更改输入值()
- 如何更改Woocommerce购物车图标
- 如何将结帐页面中显示的”下订单”文本更改为”预订”( [关闭])
- 如何使用wp_enqueue_script在foreach中更改顺序()
- 如何使用WordPress Avada子主题将主logo的链接更改为自定义URL而不是首页()
- 如何在WordPress帖子中更改h2,h3,h4的颜色
- 如何在WordPress中居中滑动条
- 如何避免在看起来有效的数组上出现php Countable错误