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.
Cuando tienes un website Ecommerce a veces quieres ofrecer ...
Este post será corto y conciso, para crear un plugin de costos ...
No sé si el título se entiende, así que aquí va la ...
Suscribete y tendrás los más recientes posts en tu email