从二十四个主题中删除Genericons Helper CSS

时间:2014-04-16 作者:Pico

我想删除默认加载到214主题中的genericons css样式。

<link rel=\'stylesheet\' id=\'genericons-css\'  href=\'http://ffwdconsulting.com/wp/wp-content/themes/twentyfourteen/genericons/genericons.css?ver=3.0.2\' type=\'text/css\' media=\'all\' />
我跟着How to remove CSS file in the header using Wordpress functions? 使用此代码:

function dequeue_my_css() {
  wp_dequeue_style(\'genericons-css\');
  wp_deregister_style(\'genericons-css\');
}
add_action(\'wp_enqueue_scripts\',\'dequeue_my_css\');
但不起作用。指向css的链接仍然显示在标题中。

2 个回复
SO网友:Pieter Goosen

首先,您试图注销一个不存在的样式表。下面是genericon样式表在2014年的排队方式

wp_enqueue_style( \'genericons\', get_template_directory_uri() . \'/genericons/genericons.css\', array(), \'3.0.2\' );
您正在尝试将样式表文件名出列。这是wp_enqueue_style() 作用

wp_enqueue_style( $handle, $src, $deps, $ver, $media );
这里最重要的部分是$handle

$句柄(字符串)(必需)名称用作样式表的句柄。

您应该使用$handle 如果需要将样式表出列。还有一件事要记住,你正在运行一个儿童主题(我真的希望如此)。首先加载子主题函数,因此需要为注销函数赋予10以上的优先级,否则函数将无法工作。

以下是工作功能

function dequeue_my_css() {
  wp_dequeue_style(\'genericons\');
  wp_deregister_style(\'genericons\');
}
add_action(\'wp_enqueue_scripts\',\'dequeue_my_css\', 100);
然而,在214主题中,这将打破主题的完整样式。不幸的是,作者使主样式表依赖于genericon样式表,因此如果您将genericon样式表出列,那么您也将“出列”主样式表。

SO网友:Brad Dalton

考虑到@goose已经说过的话,您可以考虑以下一种解决方案:

您可以而且应该始终创建一个子主题,所以为什么不复制父主题样式表,将genericons出列,然后将子主题样式表入列。

function dequeue_twenty_fourteen_css() {
  wp_dequeue_style(\'genericons\');
  wp_deregister_style(\'genericons\');
}
add_action(\'wp_enqueue_scripts\',\'dequeue_twenty_fourteen_css\', 100);


wp_enqueue_style( \'twenty-fourteen-style\', get_stylesheet_directory_uri() . \'/style.css\', array(), \'1.0.0\' );
您还可以在样式的标题中添加类似的内容。复制到父主题样式表之后,子主题中的css文件。

/*
Theme Name: 2014 Child
Description:    Child Theme for TWenty Fourteen
Author: Brad Dalton http://wpsites.net
Template: twentyfourteen
*/

@import url("../twentyfourteen/style.css");
已测试并正常工作。

结束