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

4

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

例如: 'before_title' => <h2 class="widget标题">',

如果我检查元素,我希望看到: <h2 class="作者"><h2 class="链接"> 等等...

谢谢

1个回答

9
这是完全可能的,但如果您想要动态地实现它,您需要使用一个过滤器。 dynamic_sidebar_params 过滤器适合您。如果您不熟悉过滤器的作用,基本上过滤器允许您在内容显示在屏幕上或保存在数据库中之前编辑内容。了解更多信息,请参见这里:http://codex.wordpress.org/Plugin_API/Filter_Referencedynamic_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');

这太完美了。我现在就会尝试一下,然后告诉你它的效果如何! - rabid_zombie
我在'functions.php'中添加了这个函数,并加上了add_filter调用。这是正确的放置位置吗?我对WordPress相对较新,所以这有点让我困惑。 - rabid_zombie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接