Wie man Shortcode manuell kodiert?

Ich suche nach einer function, die sonst als WP-Shortcode bezeichnet wird. Die Seite wird nicht vollständig angezeigt, wenn dieser Code eingefügt wird. Hier ist der vollständige Code, der den Shortcode umfasst:

function vntd_blog_carousel($atts, $content = null) { extract(shortcode_atts(array( "cats" => '', "posts_nr" => '', "thumb_style" => '' ), $atts)); wp_enqueue_script('prettyPhoto', '', '', '', true); wp_enqueue_style('prettyPhoto'); wp_enqueue_script('owl-carousel', '', '', '', true); wp_enqueue_style('owl-carousel'); ob_start(); echo '

Ich würde normalerweise den Shortcode verwenden, aber ich platziere diesen direkt in der PHP-Seitendatei. Die Ausgabe wird jedoch nicht auf der Seite angezeigt und die Seite kann nicht mit diesem Code geladen werden. Ich gehe davon aus, dass dies daran liegt, dass ein Fehler bei einem der von mir manuell eingegebenen Parameter aufgetreten ist.

Solutions Collecting From Web of "Wie man Shortcode manuell kodiert?"

Dein Code ist stark kaputt.

  1. Sie starten eine functionsdefinition, beenden sie aber nie. Es gibt keine Verknüpfung } , um die function zu beenden.
  2. Sie starten eine if Bedingung und schließen sie nie.
  3. Sie starten eine while Schleife und schließen sie nie.

Aus diesem Grund wird Ihre Seite nicht mit diesem Code geladen. Sie erhalten einen fatalen PHP-Fehler und würden mehrere schwerwiegende Fehler erhalten, wenn das ganze Skript nicht beim ersten fehlschlägt. Wenn Sie Debuggen aktiviert haben , würden Sie das sehen.

  1. Sie verwenden die Ausgabepufferung auch so, dass überhaupt nichts ausgeführt wird, und wenn ich mich nicht so täusche, dass der Rest der Seite nicht angezeigt wird, auch wenn Sie keine schwerwiegenden Fehler haben.

Darüber hinaus würde Ihr Loop sowieso nichts ausgeben, da Sie keinen Code enthalten, der tatsächlich Post-Informationen ausgibt. Die minimalen Korrekturen, die Sie benötigen, sind:

Und Sie geben Kategorieinformationen an den Shortcode weiter, aber haben eine Kategorie in der Abfrage fest codiert. Ich habe deine Standardeinstellungen zur Kompensation geändert.

 function vntd_blog_carousel($atts, $content = null) { extract(shortcode_atts(array( "cats" => 6, // default cat, if any "posts_nr" => '', "thumb_style" => '' ), $atts)); wp_enqueue_script('prettyPhoto', '', '', '', true); wp_enqueue_style('prettyPhoto'); wp_enqueue_script('owl-carousel', '', '', '', true); wp_enqueue_style('owl-carousel'); ob_start(); echo ' 

Siehe die Code-Kommentare für genau das, was ich getan habe. Ich habe auch den Code für die Lesbarkeit formatiert und diese alptraumhafte alternative Kontrollsyntax entfernt , die nur gut zum Verrücktmachen ist.

Um das Ganze in einen Shortcode zu verwandeln, brauchst du nur:

 add_shortcode('vntd_blog_carousel','vntd_blog_carousel'); 

Und um es manuell auszuführen, verwende:

 do_shortcode('[vntd_blog_carousel cats="2"]'); 

Ich habe keine Ahnung, was die anderen beiden Shortcode-Attribute tun sollen.