Изменить заголовок на основе родительской категории продукта в Woocommerce - PullRequest
0 голосов
/ 30 августа 2018

Я управляю интернет-магазином, где у меня есть два пользовательских заголовка для разных сторон магазина. Мне интересно, если это возможно, что для:

  • родительский продукт категории A для отображения заголовка A
  • родительский продукт категории B для отображения заголовка B

Я просто не знаю, где поместить это в мою тему.

Вот мой пример кода:

if(is_category('category-a-slug')){
    get_header('a');
}elseif(is_category('category-b-slug')){
    get_header('b');
}

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 30 августа 2018

Чтобы получить другой заголовок в зависимости от родительской категории продукта, используйте следующий код:

// For product category archive pages only
if(is_product_category()){
    // Get the WP_Term object for the current product category
    $queried_obj = get_queried_object();
    $parent_id   = $queried_obj->parent; // The parent term ID
    $taxonomy    = $queried_obj->taxonomy; // The taxonomy

    // If a parent term id exist, we get the parent term slug
    if( $parent_id > 0 ){
        $parent_slug = get_term_by( 'term_id', $parent_id, $taxonomy )->slug;
    }

    // If a parent slug exist and for parent term slug 'category-a-slug'
    if ( isset($parent_slug) && $parent_slug == 'category-a-slug' ) {
        get_header('a');
    } 
    // If a parent slug exist and for parent term slug 'category-b-slug'
    elseif ( isset($parent_slug) && $parent_slug == 'category-b-slug' ) {
        get_header('b');
    } 
    // Other cases
    else {
        get_header('shop');
    }
// For other Woocommerce archives types (as shop)
} else {
    get_header('shop');
}

Это должно работать.

Код идет по шаблону Woocommerce archive-product.php, заменяя get_header('shop');

См .: Как переопределить шаблоны Woocommerce через активную тему (документация)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...