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');
Другие вопросы по тегам