2016-12-14 11 views
2

Мой WooCommerce магазин имеет две основные категории:Отображение меню категории по архивам категории страниц и отдельных страниц продукции

cat1 
- subcat1 
- subcat2 

и

cat2 
- subcatA 
- subcatB 

Я сделал меню из этих двух ветвей, и они отображаются по категории страниц. Для упрощения навигации я также хочу показать им на страницах с одним товаром.

Мой код (находится в woocommerce.php) является:

<?php 
if (is_tax('product_cat', array(14,18,19,20,21,22,23,24)) OR is_single()) { 
    wp_nav_menu(array('theme_location' => 'cat1')); 
    } 
    elseif (is_tax('product_cat', array(15,16,17,20)) OR is_single()) { 
    wp_nav_menu(array('theme_location' => 'cat2')); 
    } 
?> 

Это работает для страниц категорий, но не для отдельных страниц продукта.

Как назначить все отдельные продукты cat1 и cat2 и отобразить назначенное меню?

Благодаря

ответ

3

Условный тег is_tax() проверяет, если пользовательские страницы архива таксономия, что отображается. Так что, как вы видите, не предназначено для отдельных страниц продукта.

Вы должны использовать условную функцию has_term(), которая будет работать аналогичным образом для ваших страниц одного продукта.

Так что ваш код будет:

<?php 

$cats1 = array(14,18,19,20,21,22,23,24); 
$cats2 = array(15,16,17,20); 
$tax = 'product_cat'; 

if (is_tax($tax, $cats1) || has_term($cats1, $tax)) 
    wp_nav_menu(array('theme_location' => 'cat1')); 
elseif (is_tax($tax, $cats2) || has_term($cats2, $tax)) 
    wp_nav_menu(array('theme_location' => 'cat2')); 

?> 

Это должно работать, как вы ожидаете для отдельных страниц продукта и архивных страниц.

+0

Hi LoicTheActec - работает идеально. Спасибо, что указали на эту логику. – timholz

 Смежные вопросы

  • Нет связанных вопросов^_^