Estoy creando una página de configuración de complementos utilizando la api register_settings ().
¿Cómo puedo crear un editor html (el editor predeterminado de wordpress sería espléndido) en lugar de solo un área de texto?
Este es un ejemplo del código que estoy usando:
add_action( 'admin_menu', 'pw_add_admin_menu' );
add_action( 'admin_init', 'pw_settings_init' );
function pw_add_admin_menu( ) {
add_menu_page( 'wpset', 'wpset', 'manage_options', 'pset', 'pw_options_page' );
}
function pw_settings_init( ) {
register_setting( 'pluginPage', 'pw_settings' );
add_settings_section(
'pw_pluginPage_section',
__( 'Live Credentials', 'pw' ),
'pw_settings_section_callback',
'pluginPage'
);
add_settings_field(
'pw_textarea_intro',
__( 'Header Intro Text', 'pw' ),
'pw_textarea_intro_render',
'pluginPage',
'pw_pluginPage_section'
);
}
function pw_textarea_intro_render( ) {
$options = get_option( 'pw_settings' );
?>
<textarea cols='40' rows='5' name='pw_settings[pw_textarea_intro]'>
<?php echo $options['pw_textarea_intro']; ?>
</textarea>
<?php
}
He reducido el código a solo un campo, pero hay más campos.
Esto representa el área de texto para mí, pero no puedo formatear el texto y sigue agregando pestañas adicionales antes y después de cualquier texto que ingrese en la página de configuración.
add_action( 'admin_menu', 'pw_add_admin_menu' );
add_action( 'admin_init', 'pw_settings_init' );
function pw_add_admin_menu( ) {
add_menu_page( 'wpset', 'wpset', 'manage_options', 'pset', 'pw_options_page' );
}
function pw_settings_init( ) {
register_setting( 'pluginPage', 'pw_settings' );
add_settings_section(
'pw_pluginPage_section',
__( 'Live Credentials', 'pw' ),
'pw_settings_section_callback',
'pluginPage'
);
add_settings_field(
'pw_textarea_intro',
__( 'Header Intro Text', 'pw' ),
'pw_textarea_intro_render',
'pluginPage',
'pw_pluginPage_section'
);
add_settings_field(
'pw_intro',
__( 'Intro', 'pw' ),
'pw_intro_render',
'pluginPage',
'pw_pluginPage_section'
);
}
function pw_textarea_intro_render( ) {
$options = get_option( 'pw_settings' );
?>
<textarea cols='40' rows='5' name='pw_settings[pw_textarea_intro]'>
<?php echo $options['pw_textarea_intro']; ?>
</textarea>
<?php
}
function pw_intro_render() {
$options = get_option( 'pw_settings' );
echo wp_editor( $options['pw_intro'], 'pw_intro', array('textarea_name' => 'pw_intro', 'media_buttons' => false) );
}
Agregué el nuevo código como Dave sugirió (¡gracias!) y ahora carga el editor wp, pero cuando hago clic en guardar para confirmar los cambios, no guarda el contenido de wp_editor. ¿Algunas ideas?