如果类别具有特定父级,则显示div

时间:2021-06-25 作者:David Cooper

我有一个PHP代码片段,它根据产品页面的特定类别ID在产品页面上显示一个div。

如何根据类别是否是特定父级的祖先来调整此代码以显示div?

如果可能的话,我想采取一种更全面的方法,而不是单独列出特定的ID-以下是我迄今为止使用的方法(提前感谢您的帮助):

function options_available() {
global $product;
global $post;
$terms = get_the_terms( $post->ID, \'product_cat\' );
foreach ($terms as $term) {
    $product_cat_id = $term->term_id;
    break;
}
if ($product_cat_id == "54" || $product_cat_id == "84" || $product_cat_id == "2022" || $product_cat_id == "56" || $product_cat_id == "972" || $product_cat_id == "55" || $product_cat_id == "62" || $product_cat_id == "63" || $product_cat_id == "2024" || $product_cat_id == "2023" || $product_cat_id == "61" || $product_cat_id == "2210" || $product_cat_id == "2253" ) {
   echo \'<div class="fkrow"> </div>\';
}

1 个回复
SO网友:David Cooper

因此,我现在可以有效地设置父类别ID,并让父类别ID中的子类别中存在的所有产品响应我所需的内容-这里绝对可以接受任何建议或改进!

我在一个函数中使用它,该函数将“tt”div放在我的目标产品页面的指定位置(取决于优先级)。

foreach循环提取类别ID,然后根据if语句中规定的父ID检查结果$项(本例中为60)。

function test($term) {
    global $product;
    global $post;
    $terms = get_the_terms( $post->ID, \'product_cat\' );
    
    foreach ($terms as $term) {
    $product_cat_id = $term->term_id;
    if ( $term->parent == 60 ) 
    {
        echo \'<div class="tt">test</div>\';}
    }
}