17Jul 2012 0 Comments */?>

Restringir búsquedas para ciertos miembros

Categorías: Tips de wordpress, Wordpress - Tags:

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!!

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.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus