Wordpress init remove_action с условными тегами

Мне нужно сделать это для темы:

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' );
   }
}

Поскольку он запускается раньше всего, я думаю, условные теги не работают.

Любые идеи?


person Jens Törnell    schedule 04.02.2010    source источник


Ответы (2)


Я обнаружил, что вместо использования init в качестве действия я должен использовать это:

add_action('template_redirect', 'test');

Затем он запускается до header.php, но после установки условных тегов.

person Jens Törnell    schedule 07.02.2010
comment
Спасибо Йенс. Это именно то, что я искал. - person Jk_; 14.12.2012

Попробуйте заменить действие 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');
person Richard M    schedule 04.02.2010