Alle Beiträge einer Kategorie ausgeben

  • Hallo,

    ich versuche, auf einer CMS-Seite alle Beiträge einer Kategorie über einen Shortcode auszugeben. Ich möchte diese Funktion nutzen, um mit Bordmitteln eine Veranstaltungsliste auszugeben. Auf meiner CMS-Seite habe ich folgenden Shortcode:

    Code
    [GetDatelist filter="future"]

    In meiner functions.php habe ich folgenden Code:

    Leider scheint hier irgendwas nicht zu funktionieren. Statt der Liste wird mir der komplette in der Schleife generierte Content am Anfang ausgegeben und die Liste ist leer. Ich verstehe nicht, was hier das Problem ist. Hat jemand von Euch einen Tipp für mich?

    VG Robert

    • 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

  • In meiner functions.php habe ich folgenden Code:


    Das erste, was ich nicht nachvollziehen kann, warum wird $sDatelist global gemacht, wenn der Variablen doch nur HTML zugewiesen wird und für den Rückgabewert der Funktion keine globale Variable benötigt wird.

  • Hallo Melewo,

    da hast Du natürlich recht, die globale Deklaration wird nicht benötigt. Diese Zeile war noch drin von meinen Versuchen, der Variable die Werte zuzuweisen. Ich kenne mich (noch) nicht so gut aus in PHP und dachte, es macht vielleicht einen Unterschied ob ich die Variable deklariere oder nicht.

    Ohne diese Zeile klappt es genauso nicht. Was mich wundert, ist dass er den HTML-Teil der Schleife in die Variable schreibt, den PHP-Teil aber nicht. Stattdessen wird der Contend, den ich mir per PHP ausgeben lasse, einfach zu Beginn ausgegeben.

    VG Robert

  • Mich wundert eher nichts. Hatte im letzten Monat mal einen Test gemacht, ist etwas mehr als was Du benötigst, eigentlich ist es eine beinahe Baumansicht innerhalb vom Dashboard geworden und da wird schon eine Globale benötigt, doch das ist dann die globale $post. Du kannst Dir ja mal mein Beispiel ansehen oder testen und Dir daraus das kopieren, was Du für Deine Funktion benötigen würdest.

    http://www.coder-welten.com/generierung-eines-artikelbaums/

  • PHP
    $my_query = new WP_Query('category_name=termine&post_status='.$atts['filter'].'&order=ASC');


    Deine Kategorien und Filter habe ich jetzt nicht, deshalb habe ich mal nur so ganz allgemein Deinen Code angepasst. [COLOR=#000000][COLOR=#0000BB]$args [/COLOR][COLOR=#007700]= array [/COLOR][/COLOR]kannst Du ja selbst anpassen, mit dem was Du haben möchtest. Das der Content am Anfang ausgegeben wurde, wird daran liegen, dass the_title und the_content direkt ausgegeben wird und als Rückgabewert als Teilstring in einer Funktion ungegeignet.

  • Und get_the_time statt the_time, hatte ich noch vergessen, da sonst kein Rückgabe als String sondern direkte Ausgabe, was dann der Grund ist, dass es oben ausgegeben wird.

    PHP
    $sDatelist .= '<li class="item"><div class="header">'.
                          '<span class="date">'.get_the_time('l, j. F Y')." &raquo; ".
                          '</span>'.'<span class="title">'.
                          esc_html(get_the_title()). '</span></div>'.
                          '<div class="content">'.
                          get_the_content(__("weiterlesen &rarr;")).
                          '</div></li>'
  • Hallo Melewo,

    super vielen Dank! Die Änderung der Funktionen mit dem Präfix "get_"bringt mir auch die Ausgabe der Inhalte wo ich will. Wieder was gelernt, danke noch mal!

    VG Robert

Jetzt mitmachen!

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