从类别页面wordpress中删除主题生成的自定义css

时间:2014-08-31 05:47:57

标签: php html css wordpress

我是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

2 个答案:

答案 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参考:

is_category

get_stylesheet

wp_enqueue_script