2012-04-04 15 views
5

Tengo una red wp instalada con usuarios que pueden crear páginas en cada sitio.¿Cómo se puede editar el título de la página en wp-admin?

Cada una de esas páginas tiene un lugar en el menú principal, y solo un usuario tiene permiso para crear todo este menú.

Quiero crear un usuario solo para poder editar el contenido de las páginas, pero no el título.

¿Cómo puedo desactivar el título de la página para editar desde el menú de administración para un usuario específico, o (mucho mejor) para una capacidad?

pensé que sólo una posibilidad, eso es la edición de administración de CSS para ocultar el cuadro de texto de título, pero tengo dos problemas:

  1. que no me gustan a CSS-ocultar las cosas.
    1. No sé dónde está el administrador css.
    2. Conozco php, pero no sé cómo agregar un css hide a un elemento para una capacidad.

How do I want it to be

Respuesta

7

Definitivamente, usted debe usar CSS para ocultar el div # titlediv. Querrá que el título se muestre en el marcado para que el envío del formulario, la validación, etc. continúe funcionando sin problemas.

Algunos de los elementos que necesita saber para implementar esta solución:

  1. current_user_can() es una función booleana que pone a prueba si la corriente usuario conectado tiene una capacidad o función.
  2. Puede agregar estilo en línea a través de la acción admin_head, o usando wp_enqueue_style si desea almacenarlo en un archivo CSS separado.

Aquí hay un fragmento de código que hará el trabajo, colóquelo donde mejor le parezca, functions.php en su tema funciona. Lo pondría dentro de una red activado el plugin si está utilizando diferentes temas en su red:

<?php 

add_action('admin_head', 'maybe_modify_admin_css'); 

function maybe_modify_admin_css() { 

    if (current_user_can('specific_capability') { 
     ?> 
     <style> 
      div#titlediv { 
       display: none; 
      } 
     </style> 
     <?php 
    } 
} 
?> 
+0

Esto puede funcionar para ocultar el menú Página> Nueva página en la barra del menú de administración, si hay un selector CSS para hacer referencia a esa entrada en el menú. ¿Sabes si existe ese selector? – jperelli

0

he resuelto el problema, sólo si alguien viene aquí usando un motor de búsqueda, he puesto la solución.

Investigando un poco, encontré la parte del código donde se inserta el cuadro de texto del título, y encontré a function to know if a user has a certain capability.

El archivo donde se agrega el cuadro de texto del título es /wp-admin/edit-form-advanced.php.Esta es la línea antes de que el cuadro de texto

if (post_type_supports($post_type, 'title')) 

lo cambié a este

if (post_type_supports($post_type, 'title') and current_user_can('edit_title')) 

De esta manera, sólo se agrega el cuadro de texto cuando el usuario tiene la capacidad denominada "edit_title"

Cuando esto SI el bloque termina pocas líneas después, agregué:

else echo "<h2>".esc_attr(htmlspecialchars($post->post_title))."</h2>"; 

Para ver el título de la página pero no para editar cuando el usuario no tiene la capacidad de "edit_title".

Luego ya había instalado un plugin to edit user capabilities and roles, que me ayudó a crear una nueva capacidad (edit_title) y asignarla a la función que quiero.

+4

Nunca debe editar los archivos principales de Wordpress. Las actualizaciones futuras eliminarán este truco. –

+3

Tienes razón, veo esta respuesta 2 años después y creo que es simplemente estúpida. Pero veo lo mucho que aprendí. StackOverflow es increíble. – jperelli

Cuestiones relacionadas