Как удалить правую боковую панель на странице одного продукта WooCommerce?

По умолчанию в правой части отдельного продукта отображается боковая панель. Дело в том, что нам нужна боковая панель только на странице магазина, где расположены все товары. Включает в себя все фильтры, а также номинальные продукты. Но на странице описания одного продукта мы хотим удалить правую боковую панель. Потому что на этой странице он показывает только оцененные продукты в боковой панели. Это было там по умолчанию. Есть ли способ удалить его с этой страницы?

6 ответов

В настоящее время в файле templates/single-product.php боковая панель называется

/**
* woocommerce_sidebar hook.
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );

Поэтому вы можете удалить его с remove_action('woocommerce_sidebar', 'woocommerce_get_sidebar', 10); или оберните его, чтобы убедиться, что он влияет только на отдельные страницы продукта:

if ( is_product() ) {
   remove_action('woocommerce_sidebar', 'woocommerce_get_sidebar', 10);
}

Вот документация для других условных тегов, если вам нужно избавиться от них где-то еще, и она использует то же действие: https://docs.woocommerce.com/document/conditional-tags/

Это решение, которое я создаю в 2021 году, работает очень хорошо (извините за мой английский)

      /*Single product page no sidebar*/
#blog #sidebar {
    display: none;
}
#blog .col-md-push-3 {
    left: unset;
}
#blog .col-md-9 {
    width: 100%;
}

поместите этот код в код css главной страницы

Посетите https://rgrepairofice.ddns.net/loja/gta-v

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

Гаспар Перейра из rgrepairofice

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

С помощью кода вы, вероятно, могли бы заменить файл single-product.php файлом шаблона страницы, который не имеет боковой панели, а затем заново вставить отсутствующие теги WooCommerce, чтобы WooCommerce сделала свое волшебство на странице.

Вы можете попробовать зайти в [project-name]/wp-content/themes/[theme-name]/woocommerce/single-product.php и найти эту строку:

do_action( 'woocommerce_sidebar' );

И удалите строку или закомментируйте ее.

Вы также можете удалить боковую панель только с помощью CSS и не касаясь файлов PHP, если вы этого не хотите! Например, следующие простые коды CSS отлично работают с темой Storefront (в настоящее время, когда я пишу это, версия темы — 4.1.0).

      .single-product #primary {
    width: 100%;
}
.single-product #secondary {
    display: none;
}

Вы не сможете сделать это по умолчанию с WooCommerce и WordPress. Тем не менее, это легко сделать, если вы не хотите погружаться в код. Популярным выбором является Widget Visibility от Jetpack. Если вы хотите погрузиться в код, я рекомендую задать новый вопрос с более подробной информацией о том, что вы уже пытались сделать.

Другие вопросы по тегам