2010-01-12 3 views
1

J'écris un plugin Wordpress qui effectue un traitement de chaîne à chaque fois que l'événement de filtre 'the_author' est déclenché. Cependant, certains widgets contiennent aussi l'événement 'the_author' et par la suite mon plugin est déclenché, ce qui ne devrait pas arriver. Donc j'essaye de détecter si mon plugin est appelé de certains widgets mais jusqu'ici en vain. Un widget que je voudrais ignorer s'appelle 'Recent Comments'. J'ai essayé:Comment déterminer si le plugin Wordpress est appelé à partir du widget Wordpress

function wrap_author($the_author) { 
    if(!is_active_widget('recent_comments')) { 
     $the_author = '<span class="CA_author">' . $the_author . '</span>'; 
     return $the_author; 
    } 
} 

Il se pourrait que je n'utilise pas le bon nom pour le widget, j'ai googlé beaucoup à trouver le nom interne approprié pour les commentaires récents Widget mais ne peut pas trouver jusqu'à présent . Ou peut-être que je ne devrais pas utiliser la fonction is_active_widget.

Répondre

1

Si vous voulez simplement que le vôtre se déclenche sur les zones de contenu "principal", utilisez la fonction in_the_loop() pour vérifier et voir si vous êtes dans une boucle de contenu. Cela va probablement vous obtenir 99% du chemin, mais vous trouverez certainement certains cas, de bord qui va causer de la frustration;)

if (in_the_loop()) { 
// do stuff 
} 

Cela permet de garder votre code d'exécuter du tout dans une barre latérale.

+0

C'est en fait une très bonne solution, je pense que cela fera l'affaire, merci! – DrDee