web-dev-qa-db-fra.com

Existe-t-il un moyen de modifier l’ordre dans lequel les plugins apparaissent dans la page?

J'ai actuellement les plugins suivants activés dans mon installation de wordpress:

rangée 1:

Outbrain

rangée 2:

Abonnez-vous via feedburner RSS/email

rangée 3:

Topsy Tweet widget, FB comme widget, WP-Email un widget ami

Je veux changer l'ordre dans lequel ils apparaissent.

Je veux que les widgets de la rangée 3 apparaissent en premier, les widgets du cerveau en dernier, de la rangée 3. Comment y parvenir?

Bien que je puisse jouer un peu avec PHP si la solution l'exige, je préfère un plugin indépendant pour prendre en charge la commande s'il en existe un!

Merci!

1
Ashwin Prabhu

D'après votre commentaire, il semble que vous l'ayez presque compris,

Les plugins qui ajoutent quelque chose sous votre contenu filtrent généralement use the_content en appelant une fonction avec add_filter, par exemple le plugin outbarin l'appelle comme suit:

add_filter('the_content', 'outbrain_display');

donc la façon dont vous pouvez les commander est en passant le paramètre de priorité

add_filter('the_content', 'outbrain_display',99); 

Mais le changer directement dans les fichiers du plugin n’est pas la bonne façon, car la prochaine fois que vous mettrez à jour le plugin, vous perdrez ces modifications. La bonne façon de le faire est donc d’ajouter une action après le chargement des plugins à l’aide du crochet plugins_loaded action. supprimez les filtres qu’ils ont ajoutés, puis ajoutez-les à nouveau en utilisant l’ordre de votre choix:

add_action('plugins_loaded','my_content_filters_order');
function my_content_filters_order(){
    //first remove the filter call of the plugin
    remove_filter('the_content', 'outbrain_display');
    //... Do that for all filters you want to reorder
    //... ex: remove_filter('the_content', 'FB_like');

    //then add your own with priority parameter
    add_filter('the_content', 'outbrain_display',99);
    //... Do that for all filters just removed and set
    //... the priority accordingly 
    //...  Lower numbers correspond with earlier execution
    //... ex: add_filter('the_content', 'FB_like',98);
    //... this will run first then outbrain
}

j'espère que cela t'aides

4
Bainternet