Wordpress: динамически изменять заголовок виджета боковой панели - PullRequest
3 голосов
/ 21 мая 2011

Можно ли получить заголовок виджетов, которые я включил, на боковой панели, чтобы я мог вставить их в качестве имени для своего атрибута класса?

Например: 'before_title' => <h2 class="title of the widget">',

Если я проверю элемент, я хочу увидеть: <h2 class="author"> и <h2 class="links"> и т. Д. *

Спасибо

1 Ответ

8 голосов
/ 21 мая 2011

Это определенно возможно, но если вы хотите сделать это динамически, вам нужно будет использовать фильтр.

Фильтр 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');
...