Wordpress:动态更改侧边栏小部件的标题

时间:2011-05-20 22:17:06

标签: wordpress-plugin wordpress

是否有可能获得我在侧边栏中启用的小部件的标题,以便我可以将其作为我的类属性的名称插入?

例如: 'before_title' => <h2 class="title of the widget">',

如果我检查元素,我想看到: <h2 class="author"><h2 class="links">等......

由于

1 个答案:

答案 0 :(得分:8)

这绝对有可能,但如果你想动态地做,你需要使用过滤器。

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');