1

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

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

ただし、すべての異なるサイドバーに対して実行されます。特定のサイドバーでのみ機能させる方法はありますか? または、その関数内で現在のウィジェットのサイドバー ID を取得する方法はありますか?

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

前もって感謝します!

4

1 に答える 1

0

カスタム フックを作成し、適切なサイドバー テンプレートに配置することをお勧めします。詳細については、do_action を参照してください。サイドバー テンプレートで次の行を使用します。

<?php do_action('custom_sidebar_action', 9999); //Replace X with the sidebar ID parameter you want to pass to the function. ?>

次に、関数内で、コードを次のように変更します (メモリからコーディングするだけなので、多少の調整が必要になる場合があります)。

function my_widget_function( $sidebar_id ) { 
    // ...
}
add_action('custom_sidebar_action', 'my_widget_function', 10, 1);

このメソッドを使用すると、サイドバー ID を渡さずに済むので、クリーナー関数は次のようになります。

<?php do_action('custom_sidebar_action'); ?>

それで:

function my_widget_function() { 
    // ...
}
add_action('custom_sidebar_action', 'my_widget_function');
于 2015-04-26T02:34:19.250 に答える