Удаление CSS стилей с конкретной страницы
Мне нужно удалить все 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 только к одной странице сайта. Как лучше всего это сделать? Или есть другой подходящий способ? Заранее большое спасибо!

Вы можете использовать условные теги, чтобы определить конкретную страницу, на которой нужно удалить стили. Функция 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 );

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

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