Widget, wo es Änderungen am Container vornehmen kann

Ist es möglich, ein Widget zu erstellen, mit dem Änderungen am Container vorgenommen werden können?

Ein Beispiel ist wie folgt:

 
<!---

sei so:

   
<!---

oder etwas ähnliches.

Wenn ich das benutze:

  register_sidebar( array( 'before_widget' => "
" ."
", 'after_widget' => "
" ) );

wird alle Widget ersetzen, nicht nur ein Widget, das ich will.

Mein Hauptziel ist es, dass ich

-Element unter einem Widget, das ich als Widget behandeln kann, geben kann, so dass es leicht zu bewegen ist.

Solutions Collecting From Web of "Widget, wo es Änderungen am Container vornehmen kann"

Ich würde das nicht empfehlen. Es ist viel einfacher, einen Clearfix-Hack zu verwenden, um das Löschen zu erzwingen und diesen Stil einfach zu deinem Widget hinzuzufügen. Clearfix-Hacks sind transparent: Es spielt keine Rolle, ob sie auf allen Elementen vorkommen, es gibt keinen sichtbaren Unterschied, abgesehen von klaren Floats.

Irgendwo in deinen Designs style.css :

 .widget:before, .widget:after { content: " "; display: table; } .widget:after { clear: both; } .widget { *zoom: 1; } 

Das kannst du natürlich überall hinstellen. Sie könnten sich in wp_head oder wp_footer und nur dafür ein benutzerdefiniertes Style-Tag wp_footer . Oder Sie könnten genauer sein. Wenn Sie zum Beispiel ein benutzerdefiniertes Widget registrieren, können Sie speziell durch den classnnamen einen Clearfix-Hack hinzufügen.

Alternativ können Sie, wenn Sie einem bestimmten Widget nur ein eindeutiges Div hinzufügen möchten, in dynamic_sidebar_params . Ihre socked-function erhält ein einzelnes Argument: ein Array von Sidebar-Parametern – einschließlich before_widget und after_widget und widget_name das das zweite Argument ist, das Sie an parent::__construct wenn Sie das Widget registrieren . Etwas wie das:

 < ?php add_filter('dynamic_sidebar_params', 'wpse90953_sidebar_params'); function wpse90953_sidebar_params($widget_params) { if (!empty($widget_params['widget_name']) && 'your_widget_name' === $widget_params['widget_name']) { $widget_params['before_widget'] = '
' . $widget_params['before_widget']; } return $widget_params; }