GoPymes's Blog

Filtrar publicaciones listados en el Admin

wordpress hook

En algunas ocasiones queremos filtrar el listado de publicaciones en nuestro Admin Post para que el usuario sólo pueda ver sus publicaciones y no vea la de otros, para ello usaremos un hook conocido y poderoso llamado pre_get_posts

Cuidado!

Se ha dicho mucho de este hook pues hay que saber usarlo con condicionales adecuadas para que no afecte a toda tu website, su poder no conoce límites

Vamos a filtrar y sólo mostrar las publicaciones del usuario conectado. Colocamos este código en functions.php de tu theme.

1
2
3
4
5
6
7
8
9
10
11
function posts_for_current_author($query) {
global $user_level;
if($query->is_admin && $user_level < 5) {
global $user_ID;
$query->set('author', $user_ID);
unset($user_ID);
}
unset($user_level);
return $query;
}
add_action('pre_get_posts', 'posts_for_current_author');
Código Explicación
$query->is_admin Condicionamos que sólo sea para el panel administrativo
$user_level < 5 Condicionamos que no afecta al editor ni al administrador
$query->set(‘author’, $user_ID) Filtramos que sólo muestre publicaciones del author con ID $user_ID

 

y con ese código, cada usuario que entre al Admin Post sólo verá los post que ha creado más no la de otros usuarios.

Los invito a seguir jugando con ese maravilloso hook.

Leave a Reply

Your email address will not be published. Required fields are marked *