it-swarm-ja.com

サイドバー/ウィジェット領域を置き換えるためのフック

目標:ネットワーク上のすべてのサイトのサイドバーをプラグインから読み込まれたコンテンツに置き換えるには、すべてのテーマで

ネットワーク上のすべてのサイトのサイドバー/メインウィジェット領域を上書きする方法が必要です。

関数呼び出しでサイドバーを生成するプラグインを書きましたが、サイドバーを完全に置き換えるためにこのコンテンツを取得するにはどうすればよいですか?現在のところ私だけができます。 get_sidebar()が発生したらフックを呼び出し、そのアクションを置き換えないでください。

add_action('get_sidebar', 'my_get_sidebar', 11);

さらに、これは私のサイドバーをページ上のすべてのサイドバーに表示させます。メインのサイドバー(サイドバー - 1?)を上書きし、他は空白のままにします。

1
Dunhamzzz

サイドバーにアクションの削除機能を利用させることを検討する必要があります。

その後、サイドバーを取り外して機能に置き換えることができます。

たとえば(この例ではsome-pageというページに基づく条件を使用しています。

function change_sidebar_yay() {
    if ( is_single('some-page') ) {
        remove_action( 'old_sidebar', 'your_function' ); //this is sidebar you want removed
        add_action('get_sidebar', 'my_get_sidebar', 11);
    }
}

http://codex.wordpress.org/Function_Reference/remove_action

old_sidebaryour_functionは削除したいサイドバーの名前と関数名です。テーマの作成者が使用した実際の値を見つけるにはテーマを調べなければなりません(通常functions.php ) しかしいつもではない)。

また、テーマがハードコードされているか、またはフック/アクションを使ってサイドバーを作成しない場合、これは機能しません。

1
Wyck

確信はありませんが、おそらくプラグイン ウィジェットロジック があなたの関数を開発するための良い出発点になり得ますか?

0
user2015