Shortcodes mit Editor für Artikellisten

  • Brauche einen shortcode, den der Redakteur mit dem Editor in den Fließtext einbauen kann.

    PHP
    [get_news category_id="744"]

    Der Shortcode soll innerhalb der Seite (nicht Artikel) eine Liste aller News mit der category_id="744" ausgeben.

    Dazu habe ich die function.php erweitert.

    Was aber passiert ist, das Wordpress mir oberhalb des Seiteninhaltes den Inhalt von the_permalink, the_id und the_title auswirft. also http://www.domain.com122posttitle

    Dort, wo ich im Editor den shorttag gesetzt habe, erscheint nichts.

    Sehe grad den Wald vor lauter Bäumen nicht.

    Danke

    • 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

  • Die the_... Funktionen geben normalerweise das Ergebnis direkt per echo aus. Probier mal anstelle von the_permalink die Funktion get_permalink.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Also Ingo hat schon Recht mit get_the_... statt the_... aber das Entscheidende ist, das du ja bereits in einer Loop steckst und eine 2te machen willst.
    Wenn du setup_data() nicht aufrufts, wird das nix mit deiner Loop für die Einblendung, den der Post der gerade aktuell ist, ist ja der in den du das integrieren willst. Machst du das jedoch, geht dir der Post selbst "flöten" und wird nicht korrekt angezeigt.
    Da kannst du nur pur mit dem Array aus Post Objekten arbeiten, wenn du schon in einer Loop bist. Loop in Loop geht bei WP nicht.

  • PHP
    add_shortcode('get_news','getNews');
    function getNews($attr,$content) {
        $category_id = $attr['category_id'];
        $category_name = $attr['category_name'];
    
    
        return query_posts('cat='.$category_id);

    So schmeisst er mir jetzt an der Stelle des Shortcodes "array" raus, hängt aber immer noch den Artikel an das Ende des Editortextes.

  • Die get_... Funktionen erlauben auch meist die Übergabe einer Artikel-ID, also kannst du praktisch Deinen Code von ganz oben nehmen, nur ein klein wenig angepaßt :-)

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • räusper.... Das liegt aber auch daran, das ich immer erst doof suchen muss, bis ich Wordpress-Funktionen in irgendeiner Datei gefunden habe.

    Quellcode-Lesen hilft ja manchmal, was?! Verdammt. War aber auch spät gestern. hehehe Und trotzdem ist das sooooo peinlich. :oops:

    Hab vielen lieben Dank.

  • Hey, zu früh gefreut. Das miese Ding schmeißt mir trotzdem noch die News unter meinem Text raus. Wie bekomme ich das denn jetzt aus der Loop (page.php) raus?

    Ich hab doch da jetzt z.B.

    Lesen Sie mehr über:
    - 1blabla
    - 2blabla

    Da kann ich nicht direkt darunter dann die normale Newsliste gebrauchen. Grrrr

Jetzt mitmachen!

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