Как удалить все стили для определенного шаблона страницы?
Я знаю, как создавать дочерние темы и шаблоны страниц. У меня есть дочерняя тема заметности под названием Заметность-ребенок, и у меня есть шаблон страницы под названием blankPage.php .
Для всех страниц, которые используют этот шаблон, я хочу, чтобы CSS вообще не загружался.
Я знаю о wp_register_script, wp_deregister_script, wp_deregister_style, wp_dequeue_style
и т. Д., Но я не уверен, где/как их использовать.
Я пробовал вводить некоторые из этих функций в blankPage.php сам по себе, и я также пробовал редактировать functions.php . Я пробовал использовать условное с if(is_page_template('blankPage.php')){...}
.
Мы будем признательны за любые рекомендации.
Спасибо!
2 answers
Вы можете удалить определенные стили и java-скрипты для определенного шаблона страницы, как показано ниже. Добавьте код в файл functions.php
вашей текущей темы. Чтобы просмотреть список всех JS и CSS, вы можете использовать плагин, подобный этому: https://wordpress.org/plugins/debug-bar-list-dependencies/
/**
* Remove specific java scripts.
*/
function se_remove_script() {
if ( is_page_template( 'blankPage.php' ) ) {
wp_dequeue_script( 'some-js' );
wp_dequeue_script( 'some-other-js' );
}
}
add_action( 'wp_print_scripts', 'se_remove_script', 99 );
/**
* Remove specific style sheets.
*/
function se_remove_styles() {
if ( is_page_template( 'blankPage.php' ) ) {
wp_dequeue_style( 'some-style' );
wp_dequeue_style( 'some-other-style' );
}
}
add_action( 'wp_print_styles', 'se_remove_styles', 99 );
Вы можете удалить все стили и java-скрипты за один раз для определенного шаблона страницы, как показано ниже. Добавьте код в файл functions.php
вашей текущей темы.
/**
* Remove all java scripts.
*/
function se_remove_all_scripts() {
global $wp_scripts;
if ( is_page_template( 'blankPage.php' ) ) {
$wp_scripts->queue = array();
}
}
add_action( 'wp_print_scripts', 'se_remove_all_scripts', 99 );
/**
* Remove all style sheets.
*/
function se_remove_all_styles() {
global $wp_styles;
if ( is_page_template( 'blankPage.php' ) ) {
$wp_styles->queue = array();
}
}
add_action( 'wp_print_styles', 'se_remove_all_styles', 99 );
Мне показалось, что я решил проблему, и это было так просто, что я потрясен, я никогда не видел, чтобы об этом кто-нибудь упоминал раньше.
Во-первых, я удалил всю свою дочернюю тему, чтобы начать все с чистого листа.
Затем я использовал https://wordpress.org/plugins/one-click-child-theme / для создания совершенно новой дочерней темы заметного.
Затем в меню Внешний вид > Редактор я просмотрел файл functions.php
и заметил, что он был предварительно создан add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
и function theme_enqueue_styles()
для меня.
Поэтому я просто завернул содержимое функции в if ( !is_page_template( 'rawHtmlPage.php' ) ) { ...}
.