Hinzufügen eines Widgets zu einer HTML-Zeichenfolge

Nach meiner vorherigen Frage konnte ich mit meinem Skin die function überschreiben, die ich vom übergeordneten Element ändern wollte.

Was die function macht, ist im Grunde die Header-Bilder für die Website zu erstellen und ich versuche, einen Widget-Bereich nur unter dem Header-Bildabschnitt hinzuzufügen.

Etwas wie das:

//https://wordpress.stackexchange.com/questions/258659/adding-a-widget-to-a-string-of-html/...
header image is displayed here
my widget should be displayed here

Also habe ich das Widget erstellt (was gut funktioniert, wenn ich es an einen beliebigen verfügbaren Haken auf der Seite anschließe) und dann habe ich die function geändert, um den Abschnitt hinzuzufügen, um mein Widget anzuzeigen. Hier ist der Code als Referenz:

 /**************************/ /* Register My Widget /**************************/ add_action( 'widgets_init', 'my_register_widget' ); function my_register_widget() { register_sidebar( array( 'id' => 'header_image_widget', 'name' => __( '(my) Widget over Header Image' ), 'description' => __( 'My widget to be displayed over the header image.' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' ) ); /* Repeat register_sidebar() code for additional widgets. */ } /**********************************************/ /* Header image function replacement /**********************************************/ // this makes wp run my function after the parent one, because my priority is 20 and the parent priority is defined to 10 add_filter( 'get_header_image_tag', 'my_colormag_header_image_markup', 20, 3 ); // Filter the get_header_image_tag() for option of adding the link back to home page option function my_colormag_header_image_markup( $html, $header, $attr ) { $output = ''; $header_image = get_header_image(); if( ! empty( $header_image ) ) { $output .= '
'; /* adding my widget to the header image */ if ( is_active_sidebar( 'header_image_widget' ) ) { //-- my widget area starts here -- $output .= '
' . dynamic_sidebar( 'header_image_widget' ) . '
'; //-- my widget area ends here -- } } return $output; }

Wie Sie sehen können, habe ich das Widget in einem Abschnitt direkt hinter dem Headerbild div . Also habe ich den Code meiner Sektion an den $output angehängt und auch die dynamic_sidebar( 'header_image_widget' ) hinzugefügt, damit das Widget in thatdiv gerendert werden konnte (https://wordpress.stackexchange.com/questions/258659/adding-a-widget-to-a-string-of-html/… ich dachte https://wordpress.stackexchange.com/questions/258659/adding-a-widget-to-a-string-of-html/…).

Sobald ich getestet habe, habe ich festgestellt, dass es nicht funktioniert (zumindest wie ich es erwartet hatte). Der div Abschnitt hat eine 1 inside (entspricht TRUE das ist der optput der dynamic_sidebar weil das Widget korrekt ausgeführt wurde) und das Widget wurde innerhalb des Abschnitts, den ich definiert habe, hinzugefügt und wurde vor dem Header-Abschnitt und außerhalb des Abschnitts hinzugefügt wo das Header-Bild und der AbschnittI definiert sind. Ich habe so etwas:

 
//https://wordpress.stackexchange.com/questions/258659/adding-a-widget-to-a-string-of-html/...
this is the widget code defined by my widget
header image is displayed here
1

Also, meine Frage an jeden, wie weiß vielleicht, was das Problem ist – wie füge ich das Widget der $output string, um es im header-image-widget-area Abschnitt (anstelle von 1 / wahr) anzuzeigen?

Vielen Dank im Voraus für Ihre Hilfe

  • Miguel

Solutions Collecting From Web of "Hinzufügen eines Widgets zu einer HTML-Zeichenfolge"