Удаление CSS стилей с конкретной страницы

16 февр. 2016 г., 23:07:44
Просмотры: 14.5K
Голосов: 3

Мне нужно удалить все CSS стили темы (и родительской, и дочерней) с одной конкретной страницы, используя functions.php в дочерней теме. Вот что я сейчас добавляю в functions.php дочерней темы:

// импорт CSS родительской и дочерней темы
function theme_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_directory_uri() . '/style.css', array($parent_style));}

// удаление CSS родительской и дочерней темы
function PREFIX_remove_scripts() {
wp_dequeue_style( 'parent-style' );
wp_dequeue_style( 'child-style' );
wp_dequeue_style( 'parent-style-css' );
wp_deregister_style( 'parent-style' );
wp_deregister_style( 'child-style' );
wp_deregister_style( 'parent-style-css' );

Я хочу применить эту функцию PREFIX_remove_scripts только к одной странице сайта. Как лучше всего это сделать? Или есть другой подходящий способ? Заранее большое спасибо!

2
Комментарии

используя functions.php вы можете проверить, является ли страница той, для которой нужно отключить css, ИЛИ вы можете создать пользовательскую php-страницу и исключить таблицы стилей

Lucky Chingi Lucky Chingi
16 февр. 2016 г. 23:11:41

Будет ли создание пользовательской php-страницы более эффективным, чем использование functions.php?

Ben Wright Ben Wright
17 февр. 2016 г. 19:30:36
Все ответы на вопрос 2
0

Вы можете использовать условные теги, чтобы определить конкретную страницу, на которой нужно удалить стили. Функция is_page() позволяет указать страницу (в отличие от других типов записей), передавая ID страницы, её ярлык (slug), заголовок или без аргументов для применения к любой странице.

function wpse_217881_remove_scripts() {

    // Проверяем целевую страницу
    if ( is_page( 'About Me And Joe' ) ) {

        // Удаляем стили
        wp_dequeue_style( 'parent-style' );
        wp_dequeue_style( 'child-style' );
        wp_dequeue_style( 'parent-style-css' );
        wp_deregister_style( 'parent-style' );
        wp_deregister_style( 'child-style' );
        wp_deregister_style( 'parent-style-css' );
    }
}

Хотя я предполагаю, что вы уже это делаете, для ясности стоит отметить: функцию, которая удаляет/отменяет регистрацию стилей, следует вызывать через хуки действий — в данном случае wp_enqueue_scripts.

Из wp_enqueue_scripts документации:

Несмотря на название, этот хук используется для подключения как скриптов, так и стилей

add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts' );

// Опционально можно указать приоритет, например:
// add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts', 20 );
17 февр. 2016 г. 01:37:14
1

Лучшим решением для меня стало создание шаблона с различными вариантами заголовка или без него.

17 июн. 2022 г. 19:15:08
Комментарии

Ваш ответ можно улучшить, добавив дополнительную подтверждающую информацию. Пожалуйста, [отредактируйте] его, чтобы добавить больше деталей, таких как цитаты или документация, чтобы другие могли убедиться в правильности вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы, в справочном центре.

User User
22 июн. 2022 г. 17:31:13