it-swarm.com.de

Benutzerdefiniertes Editorfeld, in dem HTML im visuellen Editor angezeigt wird

Ich versuche, der Seite Allgemeine Einstellungen im Administrator ein benutzerdefiniertes WordPress-Editorfeld hinzuzufügen. Ich habe es funktioniert, außer dass, wenn Sie etwas mit HTML speichern, es den gesamten Code in HTML-Entitäten konvertiert, so dass das HTML auf dem Frontend als Text angezeigt wird. Zum Beispiel...

  1. Ich füge einen Link im Text Editor als <a href="http://www.example.com">Link</a> hinzu
  2. Ich klicke auf den visuellen Editor und alles sieht normal aus ...
    • Visuell = Link
    • Text = <a href="http://www.example.com">Link</a>
  3. Ich klicke unten auf "Speichern" und wenn die Seite neu geladen wird, erhalte ich Folgendes ...
    • Visuell = <a href="http://www.example.com">Link</a>
    • Text = &lt;a href="http://www.example.com"&gt;Link&lt;/a&gt;

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', '<label for="footer_text">'.__('Footer Text' , 'footer_text' ).'</label>' , array(&$this, 'fields_html') , 'general');
    }
    function fields_html()
    {
        $value = get_option('footer_text', '');
        wp_editor($value, 'footer_text', array('textarea_rows'=>4), false);
    }
}
2
Scruffy Paws

Ich habe herausgefunden, dass ich html_entity_decode() um den Wert hinzufügen muss, 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', '<label for="footer_text">'.__('Footer Text' , 'footer_text' ).'</label>' , 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 in das Thema auszugeben und alle Shortcodes und Zeilenumbrüche zu pflegen ...

echo nl2br(html_entity_decode(do_shortcode(get_option('footer_text', ''))));
2
Scruffy Paws

Aus dem Kodex :

Beachten Sie, dass die an die Funktion wp_editor () übergebene ID nur aus Kleinbuchstaben bestehen kann. Keine Unterstriche , keine Bindestriche. Alles andere führt zu Fehlfunktionen des WYSIWYG-Editors.

Dein Code:

wp_editor($value, 'footer_text', array('textarea_rows'=>4), false);
0
vancoder