Скрытие боковой панели Woocommerce на отдельных страницах продукта - PullRequest
0 голосов
/ 22 января 2020

Я новичок здесь.

Я установил боковую панель на своей странице магазина Woocommerce следующим образом (в файле woocommerce. php):

<main role="main" class="container row">
    <div class="col-md-2 filtersmargin">
        <?php
        if (is_active_sidebar('sidebar')) {
            dynamic_sidebar('sidebar');
        }
        ?> 
    </div>
    <div class="col-md-10">
        <div class="woocommerce">
            <?php woocommerce_content(); ?>
        </div>
    </main><!-- /.container -->

Однако это Боковая панель, конечно, также отображается на отдельных страницах продукта. Проблема только в том, что фильтры в моей боковой панели не имеют значения при просмотре одного продукта (размер, цвет и т. Д. c.), И поэтому я хотел бы удалить его оттуда. В прошлом я делал это успешно с помощью фрагментов из Google (когда я не создавал свою собственную пользовательскую тему, а использовал Astra), но теперь я больше не могу заставить ее работать. Я подозреваю, что это связано с тем, как я интегрирую боковую панель, но я не уверен.

Если у кого-то есть идеи относительно того, как я могу удалить его только на страницах с одним продуктом, это будет очень цениться.

Ответы [ 2 ]

2 голосов
/ 22 января 2020

можно проверить, является ли это один продукт с помощью функций is_product() или is_singular('product') и не отображается ли боковая панель.

другой способ - полностью скопировать папку template из woocommerce плагинов root и вставить ее в themes / current-theme / woocommerce , а затем настроить single-product.php файл.

примечание: вам не нужно копировать все файлы. Вы можете копировать только те файлы, которые вам нужно настроить (здесь single-product.php).

0 голосов
/ 22 января 2020

Вы захотите использовать условный оператор, проверяющий, на какой странице вы находитесь.

Вы можете найти больше функций и подробностей здесь

Код может выглядеть примерно так:

<main role="main" class="container row">
<?php if (! is_product() ){  //if not single product page ?>
<div class="col-md-2 filtersmargin">
    <?php
    if (is_active_sidebar('sidebar')) {
        dynamic_sidebar('sidebar');
    }
    ?> 
</div>
<div class="col-md-10">
<?php }else{ // this depends on how you want your template to look ?>
  <div class="col-md-12">
<?php } ?>
    <div class="woocommerce">
        <?php woocommerce_content(); ?>
    </div>

</main><!-- /.container -->

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

if ( is_active_sidebar('sidebar') && ! is_product() ) {

Я не уверен, какой файл шаблона Вы редактируете, так что, возможно, стоит посмотреть на это.

Примечание: если вы редактируете файлы внутри плагина WooCommerce, помните, что лучше скопировать файлы шаблона в вашу тему / дочернюю тему и переопределить их таким образом, чтобы вы могли обновить свой плагин, не теряя изменения в шаблоны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...