現在のページが商品サブカテゴリページであるかどうかをどうやって確認できますか?
私は以下を試してみましたが、それは常に "NO"を印刷します
function is_subcategory($category = null) {
if (is_category()) {
if (null != $category){
$cat = get_category($category);
}else{
$cat = get_category(get_query_var('cat'),false);
}
if ($cat->parent == 0 ){
return false;
}else{
return true;
}
}
return false;
}
if (is_subcategory()){
echo "YES";
}else{
echo "NO";
}
is_category()
はビルトイン投稿カテゴリーのみをチェックします。製品カテゴリはカスタム分類法です。そのため、is_tax()
の代わりに is_category()
を、get_term()
の代わりに get_category()
を使用する必要があります。
この例をチェックしてください: -
function is_subcategory($cat_id = null) {
if (is_tax('product_cat')) {
if (empty($cat_id)){
$cat_id = get_queried_object_id();
}
$cat = get_term(get_queried_object_id(), 'product_cat');
if ( empty($cat->parent) ){
return false;
}else{
return true;
}
}
return false;
}
get_query_var()
の代わりに安全な面も使います get_queried_object_id()