Wordpress 检查产品';s类';s或其子对象';的页面正在WooCommerce中显示

Wordpress 检查产品';s类';s或其子对象';的页面正在WooCommerce中显示,wordpress,woocommerce,Wordpress,Woocommerce,在woocommerce商店中,有多种产品类别,例如玩具、衣服、鞋子、成人,每个类别都有一些儿童类别。如果显示的不是成人或其子类别,则必须模糊成人类别的产品 目前我在循环中所做的是: $for_adults = has_term( 106, 'product_cat' ); if( $for_adults && !is_product_category( 'adults' )){ echo '<img src="'.$image_src.'

在woocommerce商店中,有多种产品类别,例如玩具、衣服、鞋子、成人,每个类别都有一些儿童类别。如果显示的不是
成人
或其子类别,则必须模糊
成人
类别的产品

目前我在循环中所做的是:

   $for_adults = has_term( 106, 'product_cat' );

   if( $for_adults  && !is_product_category( 'adults' )){
         echo '<img src="'.$image_src.'" alt="'.get_the_title().'" class="product-image blur" title="'.get_the_title().'">';
   }else{
         echo '<img src="'.$image_src.'" alt="'.get_the_title().'" class="product-image" title="'.get_the_title().'">';
   }
$for_成人=有_术语(106,'product_cat');
if($for_成人&!是_产品_类别('成人')){
回声';
}否则{
回声';
}
问题在于,
是“产品”类别(“成人”)
仅在显示确切类别时返回true,需要做的是,在显示子类别页面时,如果没有硬编码类别段塞,则返回true

非常感谢您的任何帮助或指导。

给您:

// Get the term
$for_adults = get_term_by( 'slug', 'adults', 'product_cat' );

// Get the term ancestors
$product_parent_categories_all_hierachy = get_ancestors( $for_adults->term_id, 'product_cat' );

$parent_is_adults = false;

foreach ( $product_parent_categories_all_hierachy as $ancestor_id) {
    if ( $for_adults->term_id == $ancestor_id) {
        $parent_is_adults = true;
        break;
    }
}


if ( is_product_category( 'adults' ) || $parent_is_adults) {

    echo '<img src="'.$image_src.'" alt="'.get_the_title().'" class="product-image blur" title="'.get_the_title().'">';

} else {

    echo '<img src="'.$image_src.'" alt="'.get_the_title().'" class="product-image" title="'.get_the_title().'">';

}
//获取术语
$for_成人=通过(‘slug’、‘成人’、‘产品猫’)获取术语;
//得到祖先这个词
$product\u parent\u categories\u all\u hierachy=get\u祖先($for\u成人->术语“product\u cat”);
$parent\u is\u成人=假;
foreach($product\u parent\u categories\u all\u hierarchy as$祖先\u id){
if($for_成人->术语_id==$祖先_id){
$parent_is_成人=真;
打破
}
}
if(is_产品_类别(‘成人’)| |$parent_is_成人){
回声';
}否则{
回声';
}
给你:

// Get the term
$for_adults = get_term_by( 'slug', 'adults', 'product_cat' );

// Get the term ancestors
$product_parent_categories_all_hierachy = get_ancestors( $for_adults->term_id, 'product_cat' );

$parent_is_adults = false;

foreach ( $product_parent_categories_all_hierachy as $ancestor_id) {
    if ( $for_adults->term_id == $ancestor_id) {
        $parent_is_adults = true;
        break;
    }
}


if ( is_product_category( 'adults' ) || $parent_is_adults) {

    echo '<img src="'.$image_src.'" alt="'.get_the_title().'" class="product-image blur" title="'.get_the_title().'">';

} else {

    echo '<img src="'.$image_src.'" alt="'.get_the_title().'" class="product-image" title="'.get_the_title().'">';

}
//获取术语
$for_成人=通过(‘slug’、‘成人’、‘产品猫’)获取术语;
//得到祖先这个词
$product\u parent\u categories\u all\u hierachy=get\u祖先($for\u成人->术语“product\u cat”);
$parent\u is\u成人=假;
foreach($product\u parent\u categories\u all\u hierarchy as$祖先\u id){
if($for_成人->术语_id==$祖先_id){
$parent_is_成人=真;
打破
}
}
if(is_产品_类别(‘成人’)| |$parent_is_成人){
回声';
}否则{
回声';
}

@0blongCode代码工作正常:)但如果调试模式打开,则会出现以下通知:

注意:未定义变量:第[…]行[…]中的类别注意:尝试获取第[…]行[…]中非对象的属性

为了避免这种情况,我们只需要改变

$product_parent_categories_all_hierachy = get_ancestors( $category->term_id, 'product_cat' );


@0blongCode代码工作正常:),但如果调试模式处于启用状态,则会出现以下通知:

注意:未定义变量:第[…]行[…]中的类别注意:尝试获取第[…]行[…]中非对象的属性

为了避免这种情况,我们只需要改变

$product_parent_categories_all_hierachy = get_ancestors( $category->term_id, 'product_cat' );


谢谢@futta,我已经调整了:)谢谢@futta,我已经调整了:)