it-swarm.com.ru

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

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

// import parent and child theme 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));}

// remove the 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
Ben Wright

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

function wpse_217881_remove_scripts() {

    // Check for the page you want to target
    if ( is_page( 'About Me And Joe' ) ) {

        // Remove Styles
        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' );

// Optionaly add a priority if needed i.e:
// add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts', 20 );
4
Cai