Shortcode im Shortcode mit dynamischer Variable verwenden

Also habe ich einen Shortcode geschrieben, um einen Loop zu generieren (der die letzten Posts anzeigt), der Shortcode ist einfach [loop] . Hier ist der Code, der den Inhalt jedes Posts ausgibt (was das Bit ist, das mir Probleme verursacht):

 $output .= "

" . get_the_content() . "

";

Also schreibe ich Posts und der Shortcode nimmt sie und zeigt sie auf der Hauptseite und wo auch immer ich den Shortcode an. Ich benutze dies auf ziemlich vielen Seiten und hatte nie irgendwelche Probleme.

Bei einem aktuellen Projekt möchte der Kunde Vines auf der Homepage posten können. Ich habe einen anderen Shortcode geschrieben, um Vines in einen Beitrag einzubetten:

 function render_vine_embeds($atts) { extract(shortcode_atts(array( "id" => '', "type" => 'simple', "dimension" => 600 ), $atts)); $vine_id = $id; $vine_type = $type; $vine_dimension = $dimension; return ' '; } add_shortcode("vine", "render_vine_embeds"); 

Der Shortcode sieht also so aus: [vine id="{{ id here }}"] , die Attribute Type und Dimension sind optional. Das ist in Ordnung, wenn ich in einem bestimmten Post bin, aber wenn es auf der Homepage ist und der Loop durch den Shortcode generiert wird, funktioniert der Vine-Shortcode nicht und der rohe Shortcode wird als Inhalt angezeigt.

Ich habe versucht, do_shortcode([vine]) anstelle von the_content() , und das funktionierte, aber die id Teil der shortcode nicht so die Vine-Seite angezeigt eine “Not Found” -Seite anstelle der Vine selbst.

Nach all dem ist meine letzte Frage, wie verwende ich einen Shortcode innerhalb eines Shortcodes mit einer Variablen?

Solutions Collecting From Web of "Shortcode im Shortcode mit dynamischer Variable verwenden"

Sie müssen den do_shortcode auf den Inhalt selbst anwenden. Beispiel unten:

  function test_func( $atts, $content ) { extract( shortcode_atts( array( 'foo' => 'no foo', 'baz' => 'default baz' ), $atts ) ); return "
".do_shortcode($content)."
'; } add_shortcode( 'test', 'test_func' );

Mit anderen Worten, Sie müssen sich um den Shortcode kümmern, mit dem die Posts gedruckt werden, und nicht um den Weinstock.