shortcode und loop

  • habs jetzt stundenlang versucht. Finde keine Lösung!
    Also ich möchte mit einem shortcode aus der Kategorie "events" die letzten 5 Artikel mit dem tag "test" ausgeben lassen.

    Also im Artikeleditor : [events artist=test]

    Die übergabe funktioniert nur zeigt er die Ausgabe nicht an der Stelle an an der ich den shortcode eingebunden habe!
    Wie muss ich den code ändern damit er an der stelle eingebunden wird wo der shortcode steht?? komm nicht dahinter wie es mit "return" geht!?

    Code
    function events_artist($artist) { 
      
      $recent = new WP_Query("tag=".$artist);
      if ($recent->have_posts()) {
        $recent->the_post();
        the_content("weiterlese");
      }
    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Das hilft dir wahrscheinlich nicht wirklich weiter, aber es liegt ziemlich sicher an der fehlenden return-Anweisung.

    Muss es außerdem nicht eigentlich [events artist="test"] (mit Anrührungszeichen) heißen?

    PHP
    add_shortcode('events artist', 'events_artist');

    hast du aber schon in deiner functions.php?

  • Das hilft dir wahrscheinlich nicht wirklich weiter, aber es liegt ziemlich sicher an der fehlenden return-Anweisung.

    Muss es außerdem nicht eigentlich [events artist="test"] (mit Anrührungszeichen) heißen?

    PHP
    add_shortcode('events artist', 'events_artist');

    hast du aber schon in deiner functions.php?

    der shordcode funktioniert! also alles richtig auch in der function.php

    Das problem liegt glaube ich dass ich mit diesem shordcode im Loop einen anderen loop aufrufen will und das geht nicht. Weiß aber nicht wie ich das sonst lösen kann?

  • Wenn du "Text [events artist="test"] Text" schreibst, wird doch angezeigt:

    Code
    Ausgabe des Shortcodes
    Text Text

    Oder?

    Also ich glaub ich muss mal weiter ausholen.

    Hab ein 3 spalten layout.
    Alle 3 spalten werden mittels Shortcodes im editor getrennt.

    Also:
    [left_side_beginn] linke seite mit text und bilder [left_side_end]
    [right_side_beginn] rechte seite mit text und bilder [right_side_end]
    [middle_side_beginn] Hauptsächlich text [middle_side_end]

    Die Shortcodes werden einfach in div bereiche umgewandelt !
    Also -> [left_side_beginn] wird in <div id="col1"> umgewandelt.

    so baut sich meine Seite auf.

    Jetzt möchte ich in der rechten spalte 5 Artikeüberschriften aus der Categorie 1 ausgeben lassen.
    Also habe ich folgenden code im Editor hinzugefügt:
    [right_side_beginn]
    [list num="5" cat="1"]rechte seite mit text und bilder [right_side_end]

    in die function.php habe ich folgendes geschrieben.

    jetzt ist halt folgendes das die ausgabe nicht auf der rechten seite ist, sondern nur der erste artikel angezeigt wird und sonst nichts mehr.

  • Tut mir leid, da bin ich (momentan) überfragt. Mir kam halt Folgendes bekannt vor:

    [...] nur zeigt er die Ausgabe nicht an der Stelle an an der ich den shortcode eingebunden habe!

    Denn das in meinem letzten Beitrag beschriebene Verhalten hängt meines Wissens mit der return-Anweisung zusammen.

    ---

    Kann sich bitte jemand anders der Sache annehmen!? :)

  • Die Ausgabe darf nicht in der Shortcodefunktion sein (the_content), sondern muss mit

    PHP
    return get_the_content();

    [COLOR=#000000][COLOR=#007700] [/COLOR][/COLOR]zurückgegeben werden.[COLOR=#000000][COLOR=#007700]
    [/COLOR][/COLOR]

  • Stimmt. Ich war jetzt vom Code im ersten Item ausgegangen.

    Der eine Artikel, der ausgegeben wird: Wo und in welcher Form wird der ausgegeben? Und ist das der aktuellste insgesamt oder der aktuellste der Kategorie 1?

    Einmal editiert, zuletzt von spickzettel (7. April 2009 um 10:27)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!