Wordpress: динамически менять заголовок виджета на боковой панели
Можно ли получить заголовок виджетов, которые я включил на боковой панели, чтобы я мог вставить их в качестве имени для моего атрибута класса?
Например:'before_title' => <h2 class="title of the widget">',
Если я проверю элемент, я хочу увидеть:<h2 class="author">
а также <h2 class="links">
так далее...
Спасибо
1 ответ
Это определенно возможно, но если вы хотите сделать это динамически, вам нужно будет использовать фильтр.
dynamic_sidebar_params
Фильтр должен работать на вас. Если вы не знакомы с тем, что делают фильтры, в основном фильтр позволяет вам редактировать контент, прежде чем он будет отображен на экране или сохранен в базе данных. Смотрите больше здесь: http://codex.wordpress.org/Plugin_API/Filter_Reference
в dynamic_sidebar_params
фильтр, переданный массив имеет следующую структуру (я получил это от print_r)
Array
(
[0] => Array
(
[name] => Primary Widget Area
[id] => primary-widget-area
[description] => The primary widget area
[before_widget] => <li id="search-2" class="widget-container widget_search">
[after_widget] => </li>
[before_title] => <h3 class="widget-title">
[after_title] => </h3>
[widget_id] => search-2
[widget_name] => Search
)
[1] => Array
(
[number] => 2
)
)
Таким образом, все, что вам нужно сделать, это отредактировать $params
массив, прежде чем вернуть его. Возможно, вам придется выполнить некоторую условную логику, чтобы получить именно тот класс, который вам нужен, но я оставлю это на ваше усмотрение.
Вот пример:
function my_edit_widget_func($params) {
$params[0]['before_title'] = '<h3 class="' . $params[0]['widget_name'] . '">' ;
return $params;
}
add_filter('dynamic_sidebar_params', 'my_edit_widget_func');