Ich muss den Titeln der Navigationsmenüzeilen Zeilenumbrüche hinzufügen. Ich wusste nicht, dass dies ein Problem ist, da ich, wenn ich als Superadministrator angemeldet bin, gut hinzufügen kann <br/>
, aber anscheinend Administratoren auf normaler Ebene nicht.
Ich habe diesen Beitrag gelesen. Benutzerdefinierte Menüs Beschreibung HTML-Tags entfernen
Aber ich bin ziemlich davon überzeugt, dass die Tags beim Speichern / Aktualisieren entfernt werden, daher sehe ich nicht sofort, wie ein Custom Walker die Lösung ist, aber mein Gehirn ist heute ziemlich gut erschossen, daher könnte es offensichtlich sein.
Es scheint auch keine sanitären Einrichtungen in wp_save_nav_menu_items()
oder zu geben wp_update_nav_menu_item()
.
<br/>
Tag verwenden kann ... In jedem Fall handelt es sich bei den Menüelementen um Post-Typen, daher denke ich, dass die Bereinigung erfolgtsanitize_post_field()
(spezielltitle_save_pre
- siehe Quelle ). Leider gibt es keine Möglichkeit, dies nur für Menütitel zu umgehen - daher ist Ihre veröffentlichte Lösung wahrscheinlich die beste.Antworten:
Dem Hinweis von @Rarst bezüglich sicherer Charaktere folgend, habe ich Folgendes getan:
Edit : Auch per Rarst Kommentar habe ich ersetzt die
preg_replace
mitstr_ireplace
quelle
str_ireplace()
zum Ersetzen verwenden. Wusste auch nichtis_nav_menu_item()
, cool. :)is_nav_menu_item()
beim Lesen eines Codes für diese Frage entdeckt. Es war auch neu für mich. Danke für Ihre Hilfe!is_admin()
Fall ist.Ohne die Desinfektionslogik auf den Kopf zu stellen oder eine benutzerdefinierte Schnittstelle dafür zu codieren ... Ich würde nur ein sicheres Zeichen dafür festlegen (z. B. Pipe
|
) und es bei der Ausgabe durch ein Break-Tag ersetzen.Es durchläuft den
the_title
Filter in Walker und muss den Filter nur rechtzeitig hinzufügen und entfernen, damit die Titel an anderer Stelle nicht beeinträchtigt werden.quelle