Cum pot adăuga CSS personalizat doar anumitor widget-uri
Am o bară laterală dinamică standard folosind register_sidebar
și dynamic_sidebar
și am nevoie ca ultimul widget din bara laterală (care nu va avea un număr fix de widget-uri) să aibă o clasă distinctivă ('last_widget'
) adăugată la tag-ul <li>
care îl înconjoară. Care este cea mai bună metodă pentru a face acest lucru?

Salut John:
Cred că asta este ceea ce cauți (aș explica codul dar cred că se înțelege de la sine; dă-mi de știre dacă nu):
<?php
add_filter('dynamic_sidebar_params','my_dynamic_sidebar_params');
function my_dynamic_sidebar_params($params) {
$sidebar_id = $params[0]['id'];
$sidebar_widgets = wp_get_sidebars_widgets();
$last_widget_id = end($sidebar_widgets[$sidebar_id]);
if ($last_widget_id==$params[0]['widget_id'])
$params[0]['before_widget'] = str_replace(' class="',' class="last_widget ',$params[0]['before_widget']);
return $params;
}

Am scris un patch care face asta pentru codul de bază, tichetul asociat este #12615 - Adaugă clase CSS "first" și "last" pentru fiecare Widget în barele laterale (Frontend)
Patch-ul reprezintă o soluție funcțională, există câteva aspecte interne ale widget-urilor care fac ca utilizarea lui end() pe array-ul sidebar să nu funcționeze corect, așa cum sugerează mike cu codul său (Da, ar fi fost prea simplu, nu? :P ).
Anunță-mă dacă patch-ul nu se mai aplică corect. Am rulat acest patch cu succes pe site-uri cu versiunea 2.9.2.
