有沒有一種方法可以使用條件來檢查頁面是否是特定類別的子類別?如何檢查Wordpress中類別x的子類別?
即:在我的「category.php」我目前有:
<?php } else if (is_category('blog')) { ?>
這是爲了渲染根據不同的看法的類別頁面的用戶是。
是否有可能做類似的事情?
<?php } else if (is_sub_category_of('blog')) { ?>
有沒有一種方法可以使用條件來檢查頁面是否是特定類別的子類別?如何檢查Wordpress中類別x的子類別?
即:在我的「category.php」我目前有:
<?php } else if (is_category('blog')) { ?>
這是爲了渲染根據不同的看法的類別頁面的用戶是。
是否有可能做類似的事情?
<?php } else if (is_sub_category_of('blog')) { ?>
您可以查看您當前的類別父級ID是否與「博客」類別ID匹配。如果是這樣,您當前的類別是「博客」的子類別。
$current_cat = get_query_var("category");
$cat = get_term_by('slug',$current_cat,"category");
$blog = get_term_by('slug',"blog","category");
if($cat->parent == $blog->ID){ /*your code */ }
此代碼將完成您描述的功能。
老問題,但我偶然發現了這個昨晚,我不得不爲自己找到答案。
這是我category.php
頁:
$category = get_the_category();
if(isset($category[1]) && $category[1]->slug === 'catagory-you-want') {
// Do stuff if it's a child of "Category You Want"
// You can use $category[1]->cat_ID to check which category instead
}
目前的子類別是$category
在0
位置。
如果「你想要的類別」有一個父類別並且你不知道它,這將會更困難。
雖然很古老,但我創造了完美的解決方案。
添加到您的functions.php
文件:
/** check if the current category is a child of a given category **/
function current_cat_is_sub_of($parent = ''){
global $wp_query;
$cat = $wp_query->get_queried_object();
if (! isset($wp_query)) {
_doing_it_wrong(__FUNCTION__, __('Conditional query tags do not work before the query is run. Before then, they always return false.'), '3.1.0');
return false;
}
elseif($cat->parent!=0 && $cat->parent == $parent){
return true;
}
else{
return false;
}
}
然後你可以使用它的各種方式。例如,要更改給定類別下所有子類別頁面中帖子的顯示順序:
/** order posts under category 123 from new to old **/
function order_digital_posts($query){
if (current_cat_is_sub_of('THE PARENT CATEGORY ID') && $query->is_main_query()) {
$query->set('order', 'ASC');
}
}
add_action('pre_get_posts', 'order_digital_posts');
享受! Itamar
對不起,我不明白? –