¿Estás buscando una forma de deshabilitar el editor HTML de TinyMCE para todos excepto para el administrador? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para deshabilitar el editor HTML de TinyMCE para todos excepto para el administrador en WordPress.
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:
add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );
add_action( 'admin_head', 'disable_html_editor_wps' );
function disable_html_editor_wps() {
global $current_user;
get_currentuserinfo();
if ($current_user->user_level != 10) {
echo '<style type="text/css">#editor-toolbar #edButtonHTML, #quicktags {display: none;}</style>';
}
}
Alternativamente, podrías usar este fragmento, que deshabilitará TinyMCE para todos excepto para la lista especificada de usuarios. Agrega este código al archivo functions.php de tu tema o a un plugin específico del sitio.
add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );
add_action( 'admin_head', 'disable_html_editor_wps' );
function disable_html_editor_wps() {
global $current_user;
get_currentuserinfo();
// change users in list
$users = array(
"dave",
"larry",
"steve",
"ryan"
);
if (!in_array($current_user->user_login, $users)) {
echo '<style type="text/css">#editor-toolbar #edButtonHTML, #quicktags {display: none;}</style>';
}
}
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera revisar nuestros otros artículos en el sitio como: los 27 mejores temas de WordPress para negocios para tu sitio web y cómo configurar el seguimiento de descargas en WordPress con Google Analytics.
[…] [Fuente] […]
Deshabilitar y display:none; en realidad no son lo mismo...
Parece que puedes usar firedebug y habilitarlo de nuevo y usarlo y aún así escribir javascript.
No es seguro.
Buen fragmento. Tuve que usar el siguiente CSS para que esto funcionara: a#content-html {display: none !important;}
Hola Kevin,
Me encantaría ver que este código siga activo... ¿hay alguna posibilidad de una actualización para WP 3.5?
Hasta ahora, no veo que esto funcione...
Avinash D’Souza:
¡esto me funciona! – reemplaza la parte del estilo por esto:
html.wp-toolbar
body.wp-admin div#wpwrap div#wpbody div#wpbody-content
div.wrap form#post div#poststuff div#post-body.metabox-holder
div#post-body-content div#postdivrich.postarea
div#wp-content-wrap.wp-core-ui
div#wp-content-editor-tools.wp-editor-tools
a#content-tmce.wp-switch-editor
Hola Kevin — gran fragmento y aprendí de él, como aprendo de la mayoría de tu código. Seguimiento extraño, ¿cómo podemos deshabilitar el área de texto por completo? ¡¿QUÉ!!!! LOL
Ok, tengo un tipo de publicación personalizado con nada más que campos personalizados para la entrada (usando el plugin de plantilla de campos personalizados) y todo el código está en la plantilla php de la publicación personalizada. Sé que tiene algo que ver con 'display: none' pero no sé cuál es el código de "display". Creo que puedo ponerlo en una hoja de estilo separada con add_editor_style y usar una condición if (is_singular) para mostrar solo en la publicación personalizada.
Gracias
Hola Mike, puedes eliminar el Editor del tipo de publicación personalizado eliminando esas opciones del array 'supports' dentro del código de tu tipo de publicación personalizado.
‘supports’ => array( ‘title’, ‘editor’, ‘excerpt’, ‘custom-fields’, ‘thumbnail’ ),
Gracias, justo lo que necesitaba.
Genial, me alegra haber podido ayudar.
¡Gracias, útil!
Me alegra ayudar, Nick.
¿Alguna forma de hacer esto específico para el usuario?
Sí, podrías hacer algo como esto, debería funcionar. Usando una lista de personas dentro de un array y comprobando contra el usuario actual. Si el usuario no está en el array $users, eliminas el editor HTML.
add_filter( ‘wp_default_editor’, create_function(”, ‘return “tinymce”;’) );
add_action( ‘admin_head’, ‘disable_html_editor_wps’ );
function disable_html_editor_wps() {
global $current_user;
get_currentuserinfo();
$users = array(“dave”, “larry”, “steve”, “ryan”);
if (!in_array($current_user->user_login, $users)) {
echo ‘#editor-toolbar #edButtonHTML, #quicktags {display: none;}’;
}