¿Deseas restringir a los autores para que solo vean las publicaciones que crearon dentro del panel de administración? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para restringir a los autores a ver solo las publicaciones que crearon 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:
function posts_for_current_author($query) {
global $pagenow;
if( 'edit.php' != $pagenow || !$query->is_admin )
return $query;
if( !current_user_can( 'manage_options' ) ) {
global $user_ID;
$query->set('author', $user_ID );
}
return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');
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 echar un vistazo a nuestros otros artículos en el sitio como: las 15 mejores herramientas de marketing de contenidos y cómo crear un formulario de contacto en WordPress.
¿Cómo lo hago para que solo muestre las publicaciones de los autores actuales, pero que también muestre las publicaciones de otros autores que se establecen manualmente por ID, en mi caso es el ID de usuario 3, quiero que todos los autores lo vean?
Hola Patrick, una solución simple es crear una página protegida con contraseña para tus autores y mostrar las publicaciones de todos los autores en esta página.
Hola Chard, ¿cómo si esto se usará solo para una página y no para una publicación? Gracias, necesito tu opinión pronto.
Una página en WordPress es un tipo de publicación. Dicho esto, es posible que necesites cambiar 'edit.php' en la línea 4 por 'edit.php?post_type=page'.
¿Puedes ayudarme con el código para restringir a los autores a ver solo la categoría que crearon.
Gracias
¿Hay alguna forma de restringir al autor de un comentario para que sea el único que pueda ver el comentario? Sé que suena a tontería, no preguntes 🙂 ¡Realmente lo necesito! Gracias de antemano.
¡¡Muchas gracias Kevin!!
De nada, me alegra haber podido ayudar.
Además, ¿esto funciona solo para publicaciones o también para páginas?
Usando WP 3.3.1 y esto no funciona. ¿Hay alguna actualización del código? Gracias.
Ernest, me atrevería a adivinar que reemplazarías:
if( !current_user_can( ‘manage_options’ ) ) {
con:
if( !current_user_can( ‘level_1’ ) ) {
Cualquiera con un rol superior a Colaborador podría ver todas las publicaciones.
¡Hola, este es un gran fragmento! ¿Cómo puedo cambiar el código para tener este efecto para el rol de usuario "Colaboradores"?
Esto funcionó como se describe. Pero, cuando lo eliminé de functions.php, no pude ver ninguna publicación cuando inicié sesión como cualquier persona que no fuera un administrador. ???
Lo siento. Parece que pudo haber sido un problema con algo más. Parece que ahora funciona bien.
Hola Chad Genial, me alegra ver que lograste que las cosas funcionaran.
Gran fragmento, gracias. ¿Sabes alguna forma de restringir la visibilidad de los encabezados del submenú por ID de usuario? Es decir, ¿el autor de una publicación de tipo `custom_post_type` A, solo ve el submenú para `custom_post_type` A mientras que los otros submenús de `custom_post_type` están ocultos?
Hola Craig, me alegra que te guste el fragmento. Con respecto al submenú, este fragmento debería solucionarlo por ti. http://wpsnipp.com/index.php/functions-php/remove-sub-menu-dashboard-items/
Gracias por esto 😉
¿Funciona para todas las clases de usuario (Autores, Editores, etc.)?
Este fragmento solo mostrará las publicaciones creadas por ese usuario, debería funcionar para todos. Así que si tienes un usuario que no ha creado ninguna publicación, no debería ver nada dentro de la vista de administración de publicaciones.