我是Wordpress的新手并尝试修改现有的主题。实际上,主题一直在生成自定义css代码并添加到wp_head。
add_action('wp_head', 'custom_css_generator', 10);
现在我想删除现有代码并在类别页面上添加我自己的css,因为我想清理代码并删除不需要的或重复的css。
我按照这篇文章http://surefirewebservices.com/wordpress/how-to-use-remove_action-with-conditional-tags添加了类似的代码:
add_action('wp_head','remove_theme_custom_css');
function remove_theme_custom_css() {
if (is_category() ) {
remove_action('wp_head', 'custom_css_generator',10,0);
}
}
但它不起作用。请帮我解决这个问题。
我将此功能添加到了儿童主题的functions.php
答案 0 :(得分:2)
您的代码几乎就在那里,这只是您的优先事项和接受的错误参数
您的优先级为10
,这意味着您的remove_action
正在与add_action
同时执行。我怀疑您正在对子主题进行更改,实际上您的删除功能将在添加操作之前运行,因此根本不起作用。在删除操作之前,您必须先等待操作才能执行。您需要以较低的优先级添加您的功能,这将转换为更高的数字
remove_action
不接受第四个参数,因此只需删除
因此,要使代码正常工作,请执行以下操作
add_action('wp_head','remove_theme_custom_css');
function remove_theme_custom_css() {
if (is_category()) {
remove_action('wp_head', 'custom_css_generator', 20);
}
}
修改强>
这也应该有用
if (is_category()) {
remove_action('wp_head', 'custom_css_generator', 20);
}
答案 1 :(得分:0)
在header.php文件中或可能是另一个具有主题PHP函数的php文件中,您可能会发现类似的内容:
wp_enqueue_style( 'theme_stylesheet' );
为您的主题加载style.css文件。
如果您不希望在您的类别页面上加载它,您应首先确定它的页面类型,并且您可以将上述语句包含在wordpress条件中,例如:
if ( ! ( is_category() ) ) { // is_category defines any category archive page
wp_enqueue_style( 'theme_stylesheet' );
}
这意味着,如果页面不是类别存档页面,请加载主题样式表。如果是类别存档页面,请不要加载主题样式表。
Wordpress参考: