Cómo limitar a los autores a ver su propio contenido en wordpress

Si tienes un blog multi usuario, tal vez tengas este problema que los autores pueden ver todas las publicaciones cuando ellos sólo deben ver las suyas propias, es decir limitar a los autores a ver su propio contenido en wordpress.

Aquí una imágen explica el problema del listado de publicaciones en el admin:

posts in WordPress admin

A pesar que el autor puede sólo editar sus publicaciones, es mejor que por defecto las otras publicaciones no aparescan.

 

Cómo evitar que los autores miren todas las publicaciones en WordPress

Usaremos el hook  pre_get_posts para este propósito. Pero! debes ser cuidadoso con este hook porque éste afecta a la web completa ( Backend y Frontend ). Si usas las correctas condiciones, todo estará bien.

<?php
if( !function_exists('letsgodev_limit_posts') ) {
  function letsgodev_limit_posts($query) {
    global $pagenow;

    // Si el autor no está en la lista de publicaciones, no aplico
    if( 'edit.php' != $pagenow || ! $query->is_admin )
      return $query;

    // Si el autor tiene la habilidad de editar otros posts, no aplico
    if( current_user_can( 'edit_others_posts' ) )
      return $query;

    global $user_ID;
    $query->set( 'author', $user_ID );

    return $query;
  }

  add_filter( 'pre_get_posts', 'letsgodev_limit_posts');
}

 

Explicación del código.

El primer condicional:  aplicará el script si el autor está ubicado en el listado de publicaciones en el admin. Si el no está en esa sección, el script no aplicará.

El segundo condicional: aplicará el script si el autor no tiene permisos de editar otras publicaciones porque si el autor puede hacerlo es probable que este autor es editor o administrador.

Finalmente, el script obtiene el ID del actual autor ( con sesión activa ) en la variable  $user_ID  y establece eso en la consulta a la DB, entonces la lista ahora tiene un nuevo filtro ( o WHERE en la setencia SQL ).

 

Resultado:

Ahora cuando el autor se ubica en la lista de publicaciones en el admin, él verá sólo sus publicaciones.

 limit authors to their own posts in WordPress

Si te gustó este artículo por favor compartelo.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x