Ich versuche, ein benutzerdefiniertes WordPress-Editor-Feld auf der Seite Allgemeine Einstellungen im Admin hinzuzufügen. Ich habe es funktioniert, außer dass, wenn Sie alles mit HTML speichern, es den gesamten Code in HTML-Entitäten konvertiert, so dass der HTML-Code am Frontend als Text angezeigt wird. Beispielsweise…
Link
Link
Link
<a href="http://www.example.com">Link</a>
Vermisse ich irgendwo eine Einstellung? Mein Code ist derzeit …
/** * Add Copyright text to general settings menu */ $custom_general_settings = new FD_Custom_General_Settings(); class FD_Custom_General_Settings { function __construct() { add_filter('admin_init', array(&$this , 'register_fields')); } function register_fields() { register_setting('general', 'footer_text', 'esc_attr'); add_settings_field('footer_text', '' , array(&$this, 'fields_html') , 'general'); } function fields_html() { $value = get_option('footer_text', ''); wp_editor($value, 'footer_text', array('textarea_rows'=>4), false); } }
Ich fand heraus, dass ich html_entity_decode()
um den Wert hinzufügen html_entity_decode()
damit mein endgültiger Code …
/** * Add Copyright text to general settings menu */ $custom_general_settings = new FD_Custom_General_Settings(); class FD_Custom_General_Settings { function __construct() { add_filter('admin_init', array(&$this , 'register_fields')); } function register_fields() { register_setting('general', 'footer_text', 'esc_attr'); add_settings_field('footer_text', '' , array(&$this, 'fields_html') , 'general'); } function fields_html() { $value = html_entity_decode(get_option('footer_text', '')); wp_editor($value, 'footer_text', array('textarea_rows'=>4), false); } }
und dann um es in das Thema auszugeben und alle Shortcodes und Zeilenumbrüche beizubehalten …
echo nl2br(html_entity_decode(do_shortcode(get_option('footer_text', ''))));
Aus dem Kodex :
Beachten Sie, dass die ID, die an die function wp_editor () übergeben wird, nur aus Kleinbuchstaben bestehen kann. Keine Unterstriche , keine Bindestriche. Alles andere verursacht eine Fehlfunktion des WYSIWYG-Editors.
Dein Code:
wp_editor($value, 'footer_text', array('textarea_rows'=>4), false);