Запретить вывод виджета на странице продукта woocommerce

В шаблоне встроен виджет на всех страницах woocommerce выводить виджеты. Можно ли какое-то условие типа "Если это страница продукта (карточки) товара - такой-то код не выводим? В моем случае вывод виджетов. Подскажите пожалуйста.


Ответы (1 шт):

Автор решения: Viktor

Да и в качестве примера, в WordPress можно использовать условные теги для проверки типа страницы и выполнения определенных действий в зависимости от этого. В вашем случае, если вы хотите, чтобы виджеты не выводились на страницах продуктов WooCommerce, вы можете использовать условный тег is_product().

Вот пример кода, который можно добавить в ваш шаблон или в файл functions.php вашей темы:

if (!is_product()) {
    // Ваш код для вывода виджетов
    dynamic_sidebar('your-widget-area');
}

В этом примере dynamic_sidebar('your-widget-area') — это функция, которая выводит виджеты из определенной области виджетов. Замените 'your-widget-area' на идентификатор вашей области виджетов.

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

function my_custom_widget_area() {
    if (!is_product()) {
        dynamic_sidebar('your-widget-area');
    }
}
add_action('woocommerce_sidebar', 'my_custom_widget_area');

В этом примере функция my_custom_widget_area будет вызвана на хуке woocommerce_sidebar, который обычно используется для вывода сайдбара на страницах WooCommerce. Если это не страница продукта, виджеты будут выведены.

Не забудьте заменить 'your-widget-area' на идентификатор вашей области виджетов.

Если у вас есть конкретный шаблон или файл, где вы хотите применить это условие, вы можете добавить его непосредственно в этот файл. Например, если у вас есть файл sidebar.php, вы можете изменить его следующим образом:

<?php if (!is_product()) : ?>
    <?php dynamic_sidebar('your-widget-area'); ?>
<?php endif; ?>

→ Ссылка