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

rab*_*bie 3 wordpress wordpress-plugin

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

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

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

谢谢

Phi*_*ton 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
        )

)
Run Code Online (Sandbox Code Playgroud)

这意味着,您所要做的就是$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');
Run Code Online (Sandbox Code Playgroud)