Antworten auf deine Fragen:
Neues Thema erstellen

Erledigt - Zeilenumbruch in PHP erzeugen - WordPress Theme

sweetycat80

Noch nicht viel geschrieben

Hallo zusammen,

da es sich um ein PHP-Problem handelt schreibe ich den Beitrag hier hinein.
Ich habe folgendes Problem: Das Theme von WordPress, welches verwendet wird, hat eine sogenannte Team-Funktion. Man kann Teams anlegen und diese kann man dann nach Kategorien sortieren oder alle anzeigen lassen.
Lege ich ein neues Teammitglied an, so kann ich unter "Job:" den Beruf angeben. Nun gibt es Mitglieder, die mehrere Berufsbezeichnungen haben und diese Bezeichnungen sollen nun durch die Eingabe von <br/> jeweils in einer neuen Zeile angezeigt werden. Nur leider funktioniert der Befehl nicht.

Ich habe nun drei PHP-Dateien des Plugins gefunden, in denen der Bereich Job festgelegt ist. Nun bin ich leider überfragt, wo, was und wie ich es ändern muss, dass der Befehl <br/> (Wenn ich diesen im Backend in diese einzelne Zeile eingeben möchte) entsprechend umgesetzt wird.

Datei 1: (coach-team.php)
$team_job = coach_get_meta( 'coach_meta_team_job' );
if ( $team_job ) {
$output .= '<p class="team-member-job">';
$output .= $team_job;
$output .= '</p>';
}

Datei 2: (shortcodes.php)
$team_job = coach_get_meta( 'coach_meta_team_job' );
if ( $team_job ) {
$output .= '<p class="team-member-job">';
$output .= $team_job;
$output .= '</p>';
}

Datei 3: (single-coach_team.php)
$team_job = coach_get_meta( 'coach_meta_team_job' );
if ( $team_job ) {
$output .= '<p class="team-member-job">';
$output .= $team_job;
$output .= '</p>';
}

Und dann habe ich in einer weiteren Datei noch das gefunden:
$coach_team_fields = array(
array(
'label' => _x( 'Job:', 'coach-team', 'coach-plugins' ),
'desc' => _x( 'Bitte geben Sie die Job-Bezeichnung ein.', 'coach-team', 'coach-plugins' ),
'id' => $prefix . 'job',
'type' => 'text',
'sanitizer' => 'sanitize_text_field',
),


Es wäre prima, wenn mir jemand helfen könnte...

Viele Grüße
Sabrina
 

G

Gelöschtes Mitglied 633957

Guest

Da ich ein echo vermute, versuche einmal die Berufe mit "\n" (Zeilenumbruch) zu trennen und schaue was passiert.
Beispiel: Maler\nMusiker\nRaketenforscher
 
G

Gelöschtes Mitglied 633957

Guest

Wird der Backslash ausgegeben? Was steht im Quelltext der Ausgabeseite wenn "\n" verwendet wird?
 

lachender_engel

Aktives Mitglied

Ich tippe darauf, dass beim Abspeichern der Custom Meta Box alle HTML-Tags entfernt werden.
Dein Problem ist vermutlich, dass in der DB gar kein <br> ankommt.
 

owieortho

Aktives Mitglied

lachender_engel liegt, glaube ich, ziemlich richtig. Ich kenne die Innereien von WordPress nicht, aber die Anwendung dürfte eigentlich eine Kofiguration/Optioneseinstellung haben mit der zulässige HTML-Tags freigeschaltet (whitelist) werden können.

O.
 
G

Gelöschtes Mitglied 633957

Guest

Dann versuche einmal folgendes:
Ändere die Zeilen
PHP:
$output .= $team_job;
in
PHP:
$output .= str_replace("#", "<br />", $team_job);
und trenne die Begriffe/Jobs mit "#".
Also: Maler#Musiker#Raketenforscher

Edit: Oder das was O. sagt! Ich kenne WP leider auch nicht und kann bei Einstellungsoptionen & Co. nicht helfen. PHP-seitig ein Zeichen (hier: #) zu ersetzen sollte aber funktionieren.
 
Zuletzt bearbeitet von einem Moderator:
G

Gelöschtes Mitglied 633957

Guest

Ohne zu wissen wie der der Text encodiert wird, wird es eher ein räselraten.
Man könnte zum Test ein utf8_encode oder utf8_decode einsetzen und schauen was passiert.
PHP:
$output .= str_replace("#", "<br />", utf8_encode($team_job));
 

sweetycat80

Noch nicht viel geschrieben

Mit dem Befehl macht er den Zeilenumbruch, aber die Umlaute verändert er auch. Jetzt sieht es so aus (mit utf8_encode):

Steuerberater
Fachberater für das Gesundheitswesen (DStV e. V.)

Und bei uft8_decode passiert dies:
Master of Science | Steuerberater
Fachberater f�r das Gesundheitswesen (DStV e. V.)
 

lachender_engel

Aktives Mitglied

Ohne zu wissen wie der der Text encodiert wird, wird es eher ein räselraten.
Man könnte zum Test ein utf8_encode oder utf8_decode einsetzen und schauen was passiert.
PHP:
$output .= str_replace("#", "<br />", utf8_encode($team_job));
Das funktioniert so nicht, denn bei WordPress läuft das etwas anders. WordPress hat eigene Sanitizing Funktionen. Da mit PHP rumzudoktorn ist weder hilfreich noch Update-kompatibel.
Und überhaupt, Updates: Wenn jemand im Plugin selber was verändert sind die Änderungen beim nächsten Update wieder weg.
Daher immer den Plugin-Autor kontaktieren um so auch in Zukunft sicher zu sein...
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben