从特定页面中删除CSS样式

时间:2016-02-16 作者:Ben Wright

我需要使用函数从单个页面中删除所有主题(子级和父级)css样式。子主题中的php。下面是我目前正在添加到子函数的内容。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 功能仅限于站点上的一个页面。我如何才能最好地完成这一点?还是有其他合适的方法?非常感谢!

1 个回复
最合适的回答,由SO网友:Cai 整理而成

您可以使用conditional tags 要定位特定页面,需要删除其上的样式。您可以使用is_page() 以页面为目标(与其他帖子类型相反),并将页面ID、slug、title或no参数传递给任何页面。

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 docs:

尽管名称不同,但它用于将脚本和样式排队

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 );