无法更改子主题中具有‘REMOVE_ACTION’和‘ADD_ACTION’的优先级

时间:2016-04-10 作者:user1448031

我正在使用一个Woo主题。在父主题中,有以下功能:

function woothemes_wp_head() {
  do_action( \'woothemes_wp_head_before\' );
  if ( function_exists( \'woo_output_alt_stylesheet\' ) )
    woo_output_alt_stylesheet();
  if ( function_exists( \'woo_output_custom_favicon\' ) )
    woo_output_custom_favicon();
  if ( function_exists( \'woo_head_css\' ) )
    woo_head_css();
  if ( function_exists( \'woo_shortcode_stylesheet\' ) )
    woo_shortcode_stylesheet();
  if ( function_exists( \'woo_output_custom_css\' ) )
    woo_output_custom_css();
  do_action( \'woothemes_wp_head_after\' );
}
}
add_action( \'wp_head\', \'woothemes_wp_head\', 10 );
上面的函数基本上在内部添加了不同的样式表<head>.

我想在html标记中向上移动样式表。在我的孩子主题中functions.php, 这就是我所尝试的:

remove_action( \'wp_head\', \'woothemes_wp_head\', 10 );
add_action( \'wp_head\', \'woothemes_wp_head\', 2 );
以及

remove_action( \'wp_head\', \'woothemes_wp_head\');
add_action( \'wp_head\', \'woothemes_wp_head\', 2 );
这两个代码都将样式表放在<head> 但也保留了原有的;即复印2份。remove_action 似乎没有摆脱原来的样式表。

我尝试了以下代码:

add_action(\'wp_head\', \'woothemes_wp_head\', 2);
function woothemes_wp_head() {
    remove_action( \'wp_head\', \'woothemes_wp_head\', 10 );
}
这一个完全删除了样式表。

那么,我如何简单地更改优先级呢?

1 个回复
SO网友:Milo

您的孩子主题functions.php 在父主题之前加载,因此您试图在父主题添加动作之前删除该动作。

after_setup_theme 删除/添加,在加载子级和父级之后执行。

add_action( \'after_setup_theme\', \'wpd_wp_head_function\' );
function wpd_wp_head_function() {
    remove_action( \'wp_head\', \'woothemes_wp_head\', 10 );
    add_action( \'wp_head\', \'woothemes_wp_head\', 2 );
}

相关推荐

About wordpress child themes

我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容