使用dynamic_sidebar_params
滤器下面的代码添加了一些类来说明小部件是奇数还是偶数、它在侧栏中的索引以及它在侧栏中的位置。
Note: 这个str_replace("class=\\"", "class=\\"$class ", $before_widget);
下面的代码取决于您的before_widget
使用双引号——可能还应该使用正则表达式来处理单引号。我只是还没来得及做这件事。
function my_filter_dynamic_sidebar_params($params){
static $sidebar_widget_count = array();
$sidebar_id = $params[0]["id"];
if (! isset($sidebar_widget_count[$sidebar_id])){
$sidebar_widget_count[$sidebar_id] = 0;
}
$before_widget = $params[0][\'before_widget\'];
$class = $sidebar_widget_count[$sidebar_id] % 2 ?
"widget-odd" : "widget-even";
$class .= " widget-index-" . $sidebar_widget_count[$sidebar_id];
$class .= " widget-in-$sidebar_id";
$before_widget = str_replace("class=\\"",
"class=\\"$class ", $before_widget);
$params[0][\'before_widget\'] = $before_widget;
$sidebar_widget_count[$sidebar_id]++;
return $params;
}
add_filter("dynamic_sidebar_params", "my_filter_dynamic_sidebar_params");