Strip $ vor & $ nach Zeichenfolgen aus einem Seitentitel

Also habe ich ein Plugin, das entfernte Daten (Immobilieneinträge) in eine WordPress-Site zieht. Ich wurde von einem Kunden gebeten, den Seitentitel für jeden Eintrag basierend auf diesen Informationen festzulegen und so zu formatieren, wie er es möchte. Ich kann den Titelfilter verwenden, um den Inhalt des Titels einfach zu ändern, aber ich habe ein Problem mit den $ before und $ after-Elementen, die sich auf die Formatierung auswirken. Zum Beispiel verwendet twentyfourteen dies, um einen Seitentitel auszugeben:

the_title( '

', '

' );

Also wenn ich den_title-Filter starte und so etwas mache (stark vereinfacht):

 add_filter( 'the_title', 'fls_mls_listing_title_filter', 30, 2 ); function fls_mls_listing_title_filter( $title, $id ) { if ( in_the_loop() ) { $new_title = 'Something: 

Main Title

Subtitle

' return $new_title; } return $title; }

Ich komme damit auf:

 

Something

Main Title

Subtitle

Aber ich möchte damit enden:

 Something 

Main Title

Subtitle

Offensichtlich ist das kein sehr logisches Beispiel, aber ich habe es geschrieben, um es einfach zu halten. Ich muss dies innerhalb des Plugins tun und ohne eine eigene Seitenvorlage zu erstellen, damit es mit jedem Thema funktioniert, wenn es möglich ist. Alle Einsichten würden sehr geschätzt werden.

Solutions Collecting From Web of "Strip $ vor & $ nach Zeichenfolgen aus einem Seitentitel"

Es gibt keinen Filter, mit dem Sie die Werte $before und $after entfernen können:

 42 function the_title($before = '', $after = '', $echo = true) { 43 $title = get_the_title(); 44 45 if ( strlen($title) == 0 ) 46 return; 47 48 $title = $before . $title . $after; 49 50 if ( $echo ) 51 echo $title; 52 else 53 return $title; 54 } 

https://core.trac.wordpress.org/browser/tags/3.8.1/src/wp-includes/post-template.php#L42

Das ist das Ende der Geschichte. Um das zu ändern, müssen Sie das Thema hacken. Was Sie wollen, “dies innerhalb des Plugins zu tun und ohne eine eigene Seitenvorlage zu erstellen, damit es mit jedem Thema funktioniert”, ist nicht möglich.

Im besten Fall könnte man Output-Pufferung in das Theme schreiben, aber wiederum müsste man das Theme hacken.

Selbst wenn es möglich wäre, möchten Sie im Theme zahlreiche und manchmal katastrophale Fehler verursachen, da Sie das Markup entfernen würden, von dem das Theme abhängen könnte. Was du willst, ist eine schlechte Idee, sorry.