web-dev-qa-db-ja.com

ページに表示されるプラグインの順序を変更する方法はありますか?

私は現在、私のWordPressのインストールで次のプラグインを有効にしています。

1行目:

アウトブレイン

行2:

フィードバーナーのRSS/Eメールで購読する

行3:

Topsyツイートウィジェット、FB好きウィジェット、WP-友達ウィジェットにメールを送る

表示順を変更したいのですが。

3行目に3行目のウィジェットを最初に表示し、3行目にoutbrainウィジェットを最後に表示するようにします。

もし解決策が必要ならばPHPをちょっといじることができますが、もしあれば、順番を大事にするために独立したプラグインを好みます!

ありがとうございます。

1
Ashwin Prabhu

あなたのコメントから、あなたはほとんどそれを得たように見えます、

通常、コンテンツの下に何かを追加するプラグインは、use the_contentを使用して関数を呼び出すことでadd_filterフィルターをかけます。たとえば、outbarinプラグインは次のように呼び出します。

add_filter('the_content', 'outbrain_display');

あなたがそれらを注文できる方法は、priorityパラメータを渡すことです

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

ただし、プラグインのファイルで直接変更するのは正しい方法ではありません。次回プラグインを更新すると、これらの変更が失われるため、正しい方法は、plugins_loadedアクションフックを使用してプラグインが読み込まれた後にアクションを追加することです追加したフィルターを削除してから、希望する順序でこのフィルターを再追加します。

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
}

お役に立てれば

4
Bainternet