WP Woocommerce is_product_category не работает

Я продаю один продукт в моем магазине woocommerce, и кроме этого продукта я продаю несколько аксессуаров для него, поэтому я хочу использовать два шаблона. Рядом с content-single-product.php файл, который я создал другой называется content-single-accessory.php и отредактируйте этот файл шаблона.

Затем я создал две категории: продукт и аксессуар, сам продукт добавлен в категорию продукта, а аксессуары добавлены в категорию аксессуара. Теперь возникает проблема, с которой я сталкиваюсь. внутри single-product.php Я сделал это:

    <?php if (is_product_category( 'product' )) { ?>

<?php wc_get_template_part( 'content', 'single-product' ); ?>

<?php } else  { ?>

<?php wc_get_template_part( 'content', 'single-accessory' ); ?>

<?php } ?>

и когда я захожу на страницу с категорией продукта, он не показывает шаблон продукта, но показывает content-single-accessory.php, Или, чтобы быть более понятным, выше, если оператор не работает вообще и всегда отображается второй шаблон. Что я здесь не так делаю?

Спасибо!

0

Решение

Это хорошая привычка is_product_category() или же is_category() в wordpress но когда ситуация не мешает вам, не усложняйте ситуацию.

  1. Получите ваш текущий URL страницы

    $current_url = (isset($_SERVER['HTTPS'])
    ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    
  2. И проверить на странице категории просто,

    if(strpos($current_url,'product-category') !=false
    || strpos($current_url,'brand') !=false ) {
    
    }
    
1

Другие решения

Пожалуйста, попробуйте это и дайте мне знать:

<?
$terms = get_the_terms( $post->ID, 'product_cat' );

foreach ($terms as $term) {
if($term->slug == 'product') : ?>

<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( 'content', 'single-product' ); ?>
<?php endwhile; // end of the loop. ?>
<?php else :?>
<?php wc_get_template_part( 'content', 'single-accessory' ); ?>
<?php endif;
}?>

РЕДАКТИРОВАТЬ:
добавлять <? к началу

0