2010-02-04 4 views
0

je dois le faire pour un thème:Wordpress avec la remove_action balises conditionnelles

remove_action('wp_head', 'rel_canonical'); 

mais je dois le faire avec des balises conditionnelles. Le code ci-dessous ne fonctionne pas.

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

ET je dois le faire avec un plugin.

J'ai essayé de brancher l'instruction if dans le test de fonctionnement, comme ceci:

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

Parce qu'il est dirigé avant tout les balises conditionnelles ne fonctionnent pas, je suppose.

Des idées?

Répondre

3

J'ai découvert qu'au lieu d'utiliser init à une action, je dois utiliser ceci:

add_action('template_redirect', 'test'); 

Ensuite, il s'exécute avant le header.php mais après que les balises conditionnelles sont définies.

+0

+1 init est trop tôt pour exécuter une logique conditionnelle – helgatheviking

+0

Merci Jens. Ceci est exactement ce que je cherchais. –

0

Essayez de remplacer l'action rel_canonical avec votre propre fonction contenant la condition, quelque chose comme ceci:

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