Wenn php echo ohne Ergebnis, Trennzeichen/Absätze ignorieren

  • Hallo Leute,

    ich habe eine ganz simple Frage, finde via google aber einfach nichts dazu.

    Ich lasse bei meinen Filmkritiken Regisseur, Genre etc automatisch als custom taxonomy via php echo anzeigen. Hinter jeder Abfrage gibts einen Absatz. Hier wäre auch ein Trennzeichen "|" denkbar.

    Der Code sieht so aus:

    PHP
    <?php echo get_the_term_list( $post->ID, 'Regie', 'Regie: ', ', ', '' ); ?> <br>
            <?php echo get_the_term_list( $post->ID, 'Jahrzehnt', 'Jahrzehnt: ', ', ', '' ); ?> <br>
             <?php echo get_the_term_list( $post->ID, 'Genre', 'Genre: ', ', ', '' ); ?> <br>
             <?php echo get_the_term_list( $post->ID, 'Strömung', 'Strömung: ', ', ', '' ); ?> <br>
             <?php echo get_the_term_list( $post->ID, 'Schauspieler', 'Schauspieler: ', ', ', '' ); ?> <br><br><br>

    Ausgegeben sieht es dann so aus:

    Regie: Vorname Nachname
    Jahrzehnt: 1940-1949
    Genre: Drama
    Strömung: Italienischer Neorealismus

    (und live sieht es so aus: http://test.filmsucht.org/wordpress/sicario/)

    Nun zu meinem Problem:

    Gesetzt den Fall, ein Jahrzehnt ist nicht hinterlegt, gibt das php echo keinen Wert aus und zeigt "Jahrzehnt" auch nicht an, was gut ist. Da nach der Abfrage jedoch ein Absatz kommt, entsteht eine hässliche Lücke - siehe live Beispiel.

    Ich suche nun nach einem Weg, den Absatz bzw ein Trennzeichen abhängig davon zu machen, ob das echo ein Ergebnis auswirft. Kein Ergebnis, kein Absatz - die nachfolgenden Abfragen sollen dann nachrücken.

    Hat jemand eine Idee?

    • 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 geht mit einer einfachen – jeweils – vorgeschalteten if-Abfrage. Du musst das so arrangieren, dass auch deine Zeilenschaltung oder sonstiges Trennzeichen nur ausgegeben wird, wenn das Feld nicht leer ist.

    Gruß
    helix

  • Ich denke, es müsste mit !empty gehen – such mal danach.

    Immer erst die Abfrage, ob in der jeweiligen Abteilung was drin ist, wenn ja (das heißt dann innerhalb der nachfolgenden geschweiften Klammer): ausgeben wie beschrieben. Ebenfalls immer noch innerhalb des wenn-ja: dein abschließender Zeilenumbruch. Geschweifte Klammer zu. endif. Nächste if-Abfrage.

    Hab so ein Beispiel jetzt nicht auf die Schnelle daliegen zum mal-kurz-hier-reinkopieren. Aber selber suchen bringt ja auch einen viiiieeeel besseren Lerneffekt :lol:

    Gruß
    helix

  • Mein Problem ist, dass ich von PHP nicht einmal Grundkenntnisse habe. Ich kann copy/paste und logisch denken, weiß aber nicht, wann man geschweifte Klammern oder ein Semikolon zu setzen hat.

    Habe jetzt noch mal eine ganze Weile nach if(!empty gegoogled bzw nach isset, komme aber einfach nicht weiter, produziere nur Syntaxerror. Wo geschweifte Klammern oder das endif hinsollen - keine Ahnung.

    Bin jetzt soweit:

    PHP
    <?php if (empty(echo get_the_term_list( $post->ID, 'Strömung', 'Strömung: ', ', ', '' );) <br>)) (); ?>

    und bekomme gerade folgende Fehlermeldung:

    Parse error: syntax error, unexpected 'echo' (T_ECHO) in /verzeichnis/datei.php on line 100

  • mit echo darfst du natürlich nicht im IF arbeiten. Versuch das mal (ungetestet):

    PHP
    <?php
    if( get_the_term_list( $post->ID, 'Regie' ) ) {
      echo get_the_term_list( $post->ID, 'Regie', 'Regie: ', ', ', '' ) . "<br>";
    } ?>


    oder aber du versuchst es mit dem Parameter $after im get_the_term_list(): https://codex.wordpress.org/Function_Refer…list#Parameters

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Zitat

    oder aber du versuchst es mit dem Parameter $after im get_the_term_list(): https://codex.wordpress.org/Function...ist#Parameters

    Vielen Dank! Das ist ja noch viel einfacher als gedacht und die Lösung. Genau für meine Problemstellung scheint das $after gemacht zu sein.

    Falls mal jemand dasselbe Problem haben sollte - meine "fertige" Abfrage lautet dann:

    PHP
    <?php echo get_the_term_list( $post->ID, 'Strömung', 'Strömung: ', ', ', '<br>' ); ?>

Jetzt mitmachen!

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