Wie füge ich benutzerdefiniertes CSS nur bestimmten Widgets hinzu?

Ich habe eine standardmäßige dynamische Sidebar mit register_sidebar und dynamic_sidebar und ich brauche das letzte Widget in der Sidebar (das keine festgelegte Anzahl von Widgets hat), um eine eigene class ( 'last_widget' ) zum

  • hinzuzufügen, die es 'last_widget' . Was ist der beste Weg, dies zu tun?

    Solutions Collecting From Web of "Wie füge ich benutzerdefiniertes CSS nur bestimmten Widgets hinzu?"

    Hallo John :

    Ich denke, das ist, was Sie suchen (ich würde den Code erklären, ich denke, es ist selbsterklärend; lassen Sie mich wissen, wenn nicht):

     < ?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; } 
  • Sie können auch CSS verwenden, um das letzte Widget mit: last-child auszuwählen (obwohl IE dies nicht mögen würde), oder jQuery verwenden, um es auszuwählen. Aber der obige PHP-Code ist wahrscheinlich der bessere Weg, dies zu tun.

    Ich habe einen Patch geschrieben, der das für Core-Code macht, das zugehörige Ticket ist # 12615 – Füge “Erste” und “Letzte” CSS-classn-Namen zu jedem Widget in Sidebars hinzu (Frontend)

    Der Patch ist eine funktionierende Lösung, es gibt einige Widget-Interna, die end () auf dem Sidebar-Array verwenden, wie Mike es vorschlägt, wenn sein Code nicht richtig funktioniert (Ja, das wäre zu einfach gewesen, richtig: P).

    Lassen Sie mich wissen, ob der Patch nicht mehr sauber ist. Ich habe das sehr gut auf 2.9.2 Seiten laufen.