Как правильно удалить боковую панель WooCommerce - TwentySeventeen? - PullRequest
1 голос
/ 09 октября 2019

Я работаю над проектом, в котором запущена дочерняя тема TwentySeventeen, и пока на остальной части сайта нет боковой панели, кажется, WooCommerce имеет ее.

Например, магазинна странице есть это - я уже пробовал несколько вещей, и ни одна из них не работала без предостережений или не работала вообще:

Я попытался скопировать archive-product.php в мою директорию тем в woocommerce/archive-product.php и удалить следующее:

do_action( 'woocommerce_after_main_content' );

Это не сработало.

Затем я попытался сделать:

remove_action('woocommerce_sidebar','woocommerce_get_sidebar',10);

... это тоже не сработало.

Я нашел этот ответ , и он работал, но не сделал страницу полной шириной (все еще оставалось место для боковой панели), и комментарий к ответу, отмеченный с помощью этого метода, не является хорошей идеей.

Я также нашел этот ответ , но он включает в себя добавление CSS, чего я хотел бы избежать, так как это не самый надежный способ изменения имен классов в будущем и т. Д. ...

Не существует ли правильного способа сделать это без потенциальных побочных эффектов?

Ответы [ 2 ]

5 голосов
/ 12 октября 2019

Пожалуйста, добавьте этот код в ваши functions.php

Для удаления только боковой панели woocommerce
 function disable_woo_commerce_sidebar_mms() {
        remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10); 
    }
    add_action('init', 'disable_woo_commerce_sidebar_mms')
для удаления всех боковых панелей
function remove_sidebar_mms() {
        return false;
    }

    add_filter( 'is_active_sidebar', 'remove_sidebar_mms', 10, 2 );

ИЛИ

Вы можете попробовать это с помощью увеличенияПриоритетная надежда полностью свою работу

remove_action('woocommerce_sidebar','woocommerce_get_sidebar',25);
1 голос
/ 15 октября 2019

С помощью ответа Манну Сарасвата и некоторых поворотов я нашел решение:

// Remove the sidebar
add_action('get_header', 'blm_wc_remove_sidebar_check', 10);

// Removes the sidebar

function blm_wc_remove_sidebar($index) {
    return false;
}

// Check to see if we're on a WooCommerce page and if so, remove the sidebar

function blm_wc_remove_sidebar_check() {
    if ( is_woocommerce() ) {
        add_filter('is_active_sidebar', 'blm_wc_remove_sidebar', 10, 1);
    }
}

Это позволяет избежать необходимости добавлять is_active_sidebar проверку / фильтр настраницы, не относящиеся к WooCommerce.

Может быть, есть более чистый способ сделать это, но это сработало для меня.

...