使用条件标签的Wordpress init remove_action

时间:2010-02-04 20:13:04

标签: php wordpress plugins hook

我需要为主题执行此操作:

remove_action( 'wp_head', 'rel_canonical' );

但我需要使用条件标签。下面的代码不起作用。

if(is_page('comment'))
{
   remove_action( 'wp_head', 'rel_canonical' );
}

我需要使用插件执行此操作。

我试图将if语句挂钩到函数测试中,如下所示:

add_action('init', 'test');
function test()
{
   if(is_page('comment'))
   {
      remove_action( 'wp_head', 'rel_canonical' );
   }
}

因为它在其他任何事情之前运行,条件标签不起作用,我想。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我发现不应该使用init作为动作,我应该使用它:

add_action('template_redirect', 'test');

然后它在header.php之前运行,但是在设置了条件标签之后。

答案 1 :(得分:0)

尝试使用您自己的包含条件的函数替换rel_canonical操作,如下所示:

remove_action('wp_head', 'rel_canonical');
function my_rel_canonical() {
    if (!is_page('comment')) rel_canonical();
}
add_action('wp_head', 'my_rel_canonical');