正在从wp_head中删除特定样式

时间:2018-08-14 作者:max

我不是WordPress开发人员,我想帮助一个拥有WordPress网站的朋友。问题是:

在模板中,wp_head() 函数添加一系列样式和脚本。

我想删除某些页面中的一些内容,比如:

<link rel=\'stylesheet\' id=\'yasrcss-css\'  href=\'https://www.example.com/wp-content/plugins/yet-another-stars-rating/css/yasr.css\' type=\'text/css\' media=\'all\' />
所以我四处搜索,根据其他问题的建议,我在functions.php (主题文件夹内):

add_action( \'init\', \'_remove_style\' );

function _remove_style() {
    wp_dequeue_style( \'yasrcss-css\' );
    wp_dequeue_style( \'yasr.css\' );
}
它不起作用,我还在functions.php:

wp_deregister_style(\'yasrcss-css\');
这个也没用。

我是否错过了什么,还有什么我应该做的吗?

顺便说一句,我尝试了以下代码:

printf( 
    \'<pre>%s</pre>\', 
    var_export( $GLOBALS[\'wp_scripts\']->registered, TRUE )
);
根据建议here. 它在输出中没有特定的CSS。

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

注意:文件名为functions.php, 不function.php (但这可能只是问题中的一个拼写错误)。

若要删除脚本或样式,必须在添加后将其删除。如果您在添加之前尝试将其删除,甚至打印$GLOBALS[\'wp_scripts\']->registered, 不会发生任何事情,因为它尚未添加。

因此,删除它们的一种方法是执行_remove_style 尽可能晚地工作。

此外,您需要确保您首先使用了用于将CSS文件排队的正确句柄。在这种情况下,正确的句柄是:yasrcss (贷记至@thedeadmedic).

结合所有这些,您可以尝试以下代码:

add_action( \'wp_enqueue_scripts\', \'_remove_style\', PHP_INT_MAX );
function _remove_style() {
    wp_dequeue_style( \'yasrcss\' );
}

SO网友:AddWeb Solution Pvt Ltd

要从少数选定页面中删除样式表,请打开函数。php文件,并将下面的代码放入该文件中。在页面id数组中,它只针对您不想应用CSS的特定页面

add_action(\'init\',\'_remove_style\');
function _remove_style(){
   global $post;
   $pageID = array(\'20\',\'30\', \'420\');//Mention the page id where you do not wish to include that script

   if(in_array($post->ID, $pageID)) {
       wp_dequeue_style(\'your_style_sheet.css\'); 
   }
}

结束

相关推荐