Benutzerdefiniertes Editorfeld, das HTML im visuellen Editor anzeigt

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…

  1. Ich füge einen Link im Texteditor als Link
  2. Ich klicke auf den Visual Editor und alles sieht normal aus …
    • Visual = Link
    • Text = Link
  3. Ich klicke unten auf Speichern und wenn die Seite neu geladen wird, bekomme ich das …
    • Visual = Link
    • Text = <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); } } 

Solutions Collecting From Web of "Benutzerdefiniertes Editorfeld, das HTML im visuellen Editor anzeigt"

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);