如何向我的侧边栏小部件添加增量类标识符?

时间:2011-03-04 作者:Scott B

函数中的我的边栏小部件代码。php看起来像这样。。。

if ( function_exists(\'register_sidebar\') )
register_sidebar(array(
    \'name\' => \'Home Sidebar\',
    \'id\' => \'home-sidebar-widget\',
    \'before_widget\' => \'<div class="menu side %2$s">\',
    \'after_widget\' => \'</div>\',
    \'before_title\' => \'<h4 class="sidebarTitle">\',
    \'after_title\' => \'</h4>\',
));
将在网站上创建此标记。。。

<div class="menu side widget_text">
    <h4>widget 1 title</h4>
    <div class="textwidget">Lorem ipsum dolor sit amet</div>
</div>

<div class="menu side widget_text">
    <h4>widget 2 title</h4>
    <div class="textwidget">Lorem ipsum dolor sit amet</div>
</div>
以下是我需要的(只需向类集合添加一个数字)。。。

<div class="menu side s1 widget_text">
    <h4>widget 1 title</h4>
    <div class="textwidget">Lorem ipsum dolor sit amet</div>
</div>

<div class="menu side s2 widget_text">
    <h4>widget 2 title</h4>
    <div class="textwidget">Lorem ipsum dolor sit amet</div>
</div>
我想添加一个count变量,这样每个侧边栏都会得到一个数字,然后我可以将其用于css目标。怎样

2 个回复
最合适的回答,由SO网友:wyrfel 整理而成

似乎没有一种简单的方法可以做到这一点。但是,您可以尝试这种相当粗糙的方法:

add_filter(\'dynamic_sidebar_params\', \'my_sidebar_params_cb\');

function my_sidebar_params_cb($params) {
    global $my_widget_counter;
    if (empty($my_widget_counter)) $my_widget_counter = 1;
    else $my_widget_counter++;
    $params[0][\'before_widget\'] = str_replace(\'class="\', \'class="widget_nr_\'.$my_widget_counter.\' \', $params[0][\'before_widget\']);
    return $params;
}

SO网友:t31os

您可以像这样针对CSS中的特定元素。。(当然不适用于所有浏览器)。

#sidebar div.menu.side:nth-child(1) { /* First */ }
#sidebar div.menu.side:nth-child(2) { /* Second */ }
#sidebar div.menu.side:nth-child(3) { /* Third */ }

..and so on...
或者使用一些jQuery来添加类。。

jQuery(document).ready( function($) {
    var wi = 1;
    $(\'#sidebar div.menu.side\').each( function() {
        $(this).addClass( \'widget-s\' + wi );
        wi = wi + 1;
    });
});
虽然wyrfel的方法看起来对你有用,但我建议在以上两种情况下。

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?