Наша задача – сделать отдельные файлы шаблона для категории товара и для самой страницы товара в магазине на базе woocommerce. Практичное применение – категория должна иметь сайдбар для фильтра, а на странице товара он не нужен. Как это реализовать – читаем дальше.
Рассмотрим вариант интеграции с использованием файла woocommerce.php описанный в предыдущем материале.
Для этого этот самый файл нужно изменить, а именно – заменить <?php woocommerce_content(); ?> на разделение на два файла шаблона. В итоге наш файл примет следующий вид:
1 2 3 4 5 6 7 8 9 | <?php get_header(); ?> <?php if ( is_product() ) : ?> <?php get_template_part( 'woocommerce-product' ); ?> <?php else: ?> <?php get_template_part( 'woocommerce-category' ); ?> <?php endif; ?> <?php get_footer(); ?> |
После чего собственно создаем в корне папки темы два файла шаблонов woocommerce-product.php и woocommerce-category.php с отдельными шаблонами под наши потребности.
Теперь можно отдельно править файл шаблона категории и шаблона страницы товара.
Сделаем как во вступлении – категория с сайдбаром а товар без:
содержимое woocommerce-category.php:
1 2 3 4 5 6 7 8 | <section class="content"> <?php woocommerce_content(); ?> </section> <?php if ( is_active_sidebar( 'rightsd' ) ){ ?> <div id="rsidebar" class="sidebar"> <?php dynamic_sidebar( 'rightsd' ); ?> </div> <?php } ?> |
содержимое woocommerce-product.php:
1 2 3 | <section class="content"> <?php woocommerce_content(); ?> </section> |
Данный пример с минимумом кода – для понятия логики работы разделения. Вы же можете поэксперементировать в свое удовольствие, и сделать практически любое отображение для шаблона категории и товара.