Custom editor field displaying HTML in Visual editor

I found out I needed to add html_entity_decode() around the value so my final code is…

/**
 * 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);
    }
}

and then to output it into the theme and maintain any shortcodes and linebreaks…

echo nl2br(html_entity_decode(do_shortcode(get_option('footer_text', ''))));

Leave a Comment