PHP: Zeilenumbrüche fehlen

  • Hallo,

    ich habe folgendes Problem, ich habe einen Code mit dem ich Benutzerdefinierte Felder als Shortcode in einem Artikel ausgeben kann. Das klappt auch außer, dass die Zeilenumbrüche nicht berücksichtigt werden.

    Gespeichert werden die Zeilenumbrüche aber mit (Sieht man beim bearbeiten der Beiträge)

    Es gibt ja bei PHP "\n", aber ich habe es damit nicht hinbekommen.

    Code aus der functions.php

    Der Shortcode

    Code
    [field "shortcode-name"]




    Ich hoffe das mir da jemand weiterhelfen kann, habe schon paar Sachen versucht aber es hat nichts gebracht.


    Vielen dank schonmal im vorraus

    • 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

  • Hallo playnic,
    wahrscheinlich werden die Zeilenumbrüche in der Datenbank als "\n", "\n\r" o.ä. gespeichert, müssen aber, um im Browser korrekt dargestellt werden zu können, als "<br>" bzw. "<br />" vorliegen.
    So sollte es funktionieren: (falls die Funktionsverschachtelung Probleme macht, dann erst den Wert in eine Variable speichern und anschließend der Funktion nl2br die Variable übergeben)

    Code
    // return get_post_meta($post_id, $field, true);
    return nl2br(get_post_meta($post_id, $field, true));
  • Hallo playnic,
    wahrscheinlich werden die Zeilenumbrüche in der Datenbank als "\n", "\n\r" o.ä. gespeichert, müssen aber, um im Browser korrekt dargestellt werden zu können, als "<br>" bzw. "<br />" vorliegen.
    So sollte es funktionieren: (falls die Funktionsverschachtelung Probleme macht, dann erst den Wert in eine Variable speichern und anschließend der Funktion nl2br die Variable übergeben)

    Code
    // return get_post_meta($post_id, $field, true);
    return nl2br(get_post_meta($post_id, $field, true));


    Das war die Lösung, vielen Dank :)

Jetzt mitmachen!

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