web-dev-qa-db-ja.com

Wordpress:特定のサイドバーウィジェットにフィルタ/フックを適用する?

私は5つ以上の異なるサイドバーを持つテーマを開発しています、そして私はスタイリング目的のためにそれらのうちの特定の1つに機能を適用したいです。基本的に、この関数は各ウィジェットの間にランダムなものを表示するためにカウンターを使用してパラメーターを変更します。私はそれを思い付きました:

function widget_params( $params ) { 
    // ...
}
add_filter( 'dynamic_sidebar_params', 'widget_params' );

しかし、それは一人ひとりの異なるサイドバーに対して実行されます。特定のサイドバーでしか機能しないようにする方法はありますか?あるいは、その関数の中に現在のウィジェットのサイドバーIDを取得する方法はありますか?

そのすべてが理にかなっていることを願っています。

前もって感謝します!

1
ZK_

コールバックの先頭にvar_dump($params);を追加すると、サイドバー名とサイドバーIDの両方への参照が含まれていることがわかります。名前またはIDがわかっていれば、これらを使用していつ実行するかを制御できます。

function widget_params( $params ) { 
  if ('Main Sidebar' === $params[0]['name']) {
    // do something
  }
  return $params;
}
add_filter( 'dynamic_sidebar_params', 'widget_params' );
5
s_ha_dum