¡Que nadie toque mi tema!

Me voy a contestar antes de empezar: «Si, vale, también puedes hacer que los usuarios no tengan perfiles que les permitan cambiar de tema o modificarlo«. Y es que hay plugins muy capaces, como Role Manager o Members, para crear perfiles personalizados.

Pero ¿y si tu «cliente» no quiere restricciones?, si quiere acceso completo salvo el acuerdo que ha llegado contigo, como diseñador del sitio, de NO TOCAR TU TEMA, NI DESACTIVARLO NI CAMBIAR DE TEMA.

Entonces parece tener sentido desactivar toda opción para que nadie, quizás salvo tu mismo, tenga acceso a las opciones del tema, incluso al menú mismo.

Si es tu caso puedes conseguirlo fácilmente, solo necesitas hacer 2 cosas:

  1. Conocer tu ID de usuario (o el del usuario que va a tener acceso a la ventana de Temas para hacer modificaciones). Es sencillo, en la ventana de usuarios de WordPress pones el cursor del ratón sobre el usuario a autorizar y en la barra de estado del navegador (si, esa que tienes desactivada y no deberías) verás una URL del tipo: http://misitio.com/wp-admin/user-edit.php?user_id=XX&wp_http_referer_etcétera_y_etcétra, donde las XX son el número de ID del usuario. Lo dicho, facilito.
  2. Añade este código al fichero functions.php del tema activo:
    add_action( 'admin_init', 'slt_lock_theme' );
    function slt_lock_theme() {
    	global $submenu, $userdata;
    	get_currentuserinfo();
    	if ( $userdata->ID != XX ) {
    		unset( $submenu['themes.php'][5] );
    		unset( $submenu['themes.php'][15] );
    	}
    }

    Y, de nuevo, sustituyes «XX» por el número de ID de usuario que SI tendrá acceso a la ventana de administración de temas y, en consecuencia, hacer todas las perrerías posibles.

Y ya lo tienes.

Estupendo truco de Sarah Gooding

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(0 votos, promedio: 0)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

7 comentarios en “¡Que nadie toque mi tema!”

  1. Jonathan Coreas

    Muy útil porque aveces el usuario puede activar temas desfasados que no fusionan bien y puede hasta borrar tu plantilla para luego echarte la culpa.

  2. Esta opción esta genial, pero solo oculta la opción de Theme y no la de Editar.

    Como podemos añadir mas restricciones?

    He probado a poner
    <code>
    add_action( 'admin_init', 'slt_lock_theme' );
    function slt_lock_theme() {
    global $submenu, $userdata;
    get_currentuserinfo();
    if ( $userdata->ID != 2 ) {
    unset( $submenu['themes.php'][5] );
    unset( $submenu['themes.php'][15] );
    unset( $submenu['theme-editor.php'][5] );
    unset( $submenu['theme-editor.php'][15] );
    }
    }
    </code>

    Pero no sirve.

  3. La verdad es que no entiendo dónde está la ventaja de simplemente elimintar las opciones del menú… Eso no impedirá que "el cliente" si quiere acceda al menú para cambiar los temas o editarlos. Le bastará con poner la URL a mano (no hay que subestimar nunca al usuario! -ni a sus primos-) y si tiene perfil de usuario con capacidades suficientes podría igualmente hacer los cambios.

    No obstante, puestos a simplemente quitar las opciones del menú, sería mucho más adecuado esto:

    add_action( 'admin_init', 'sa_no_menu_themes' );

    function sa_no_menu_themes() {

      global $current_user;
      
      if ($current_user->ID != 'XX') {
        remove_submenu_page( 'themes.php', 'themes.php' );
        remove_submenu_page( 'themes.php', 'theme-editor.php' );  
      }

    }

  4. Pingback: ¡Que nadie toque mi tema! - HABILWEB

  5. Eduardo Viramontes Felix

    A mi me gustaria permitir algo distinto a mi cliente: darle acceso al Option Theme, sin embargo el usuario Editor (que es como tengo al cliente, con algunas modificaciones con Memebers) no tiene acceso a dicha seccion. es posbile crear un Role Capabilitie personalizado? y si es asi como se el nombre de dicha capacidad para que funcione?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido