2013-07-14 4 views
1

Я разрабатываю тему с более чем 5 различными боковыми панелями, и я хочу применить функцию к одному из них для стилизации. В принципе, функция будет изменять свои параметры с помощью счетчика, чтобы показывать случайные символы между каждым из виджетов. Я придумал это:WordPress: применить фильтр/крючок к конкретным виджетам боковой панели?

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

Но, тем не менее, он будет работать для каждой боковой панели. Есть ли способ заставить его работать только на определенной боковой панели? Или, альтернативно, есть ли способ получить идентификатор боковой панели текущего виджета внутри этой функции?

Надеюсь, что все это имеет смысл.

Заранее благодарен!

+0

Пожалуйста, [не кросс-пост] (http://meta.stackexchange.com/q/64068/185667) тот же вопрос по сети: http://wordpress.stackexchange.com/ д/106476 – brasofilo

ответ

0

Я бы рекомендовал создать пользовательский крючок и поместить его в соответствующий шаблон боковой панели. See do_action for more information. Используйте следующую строку в шаблоне боковой панели:

<?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'); 
Смежные вопросы