Я продаю один продукт в моем магазине 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
, Или, чтобы быть более понятным, выше, если оператор не работает вообще и всегда отображается второй шаблон. Что я здесь не так делаю?
Спасибо!
Это хорошая привычка is_product_category()
или же is_category()
в wordpress
но когда ситуация не мешает вам, не усложняйте ситуацию.
Получите ваш текущий URL страницы
$current_url = (isset($_SERVER['HTTPS'])
? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
И проверить на странице категории просто,
if(strpos($current_url,'product-category') !=false
|| strpos($current_url,'brand') !=false ) {
}
Пожалуйста, попробуйте это и дайте мне знать:
<?
$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;
}?>
РЕДАКТИРОВАТЬ:
добавлять <?
к началу