Restringir búsquedas para ciertos miembros
Si quieres restringir las búsquedas para ciertos miembros por que por ejemplo tienes un custom post type privado donde solo los miembros con el rol “usuario-especial” tienen acceso, puedes hacerlo añadiendo un filtro al query de búsquedas.
Para manejar roles y usuarios suelo usar el plugin “Members” de Justin Tadlock. Por lo general si hago alguna página de empresa, estos requieren una sección privada para compartir con sus empleados. Para ello utilizo un custom post type y luego impido el accesso con el plugin mencionado anteriormente.
Una vez creado el rol, si no quiero que estos custom post types aparezcan en las búsquedas del sitio, debo agregar este filtro a functions.php
function filter_search($query) {
if ($query->is_search) {
if ( current_user_can( 'usuario-especial' ) || current_user_can( 'administrator' ) ) {
}
else
{
$query->set('post_type', array('posts','un-custom-post-publico','portfolio','pages'));
}
};
return $query;
};
add_filter('pre_get_posts', 'filter_search');
Básicamente dice que si el usuario no es admin o no tiene el rol de “usuario-especial” solo busque en los posts mencionados.
Espero que les sirva en sus proyectos. Saludos!!
Acerca del autor
by Damián Logghe
Programador freelancer y emprendedor en sueños. Contento de ser mi jefe y poder hacer lo que me gusta. Wordpress es mi principal fuente de ingreso y me escribo tanto para ayudar como para tener una guia de memoria. Quieres contratarme? Déjame un mensaje.







Últimos Comentarios