19 de junio de 2009

Wordpress: Cómo excluir categorías de las búsquedas

Wordpress trae incorporado un motor de búsquedas bastante flexible que podemos configurar utilizando query_posts con sus parámetros correspondientes.

Os voy a poner ahora un ejemplo en PHP de como excluir la categoría con el id 12:

<?php
$s = get_query_var('s');
query_posts("s=$s&cat=-12");
?>

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<? the_title ?>
<?php endwhile; ?>
<?php else : ?>
No hemos encontrado ningún resultado. ¿Por qué no pruebas a buscar con otros términos?
<?php endif; ?>

Con este ejemplo Wordpress nos mostraría todos los posts que no pertenezcan a la categoría 12, bueno, los posts y las páginas, recordad que las páginas no tienen categorías en esta plataforma. Cómo podéis ver, dentro de query_posts aparece el modificardor cat=-12, si quisiésemos excluir varias categorías utilizaríamos cat=-12,-13-15, es decir, separaríamos las categorías por comas.

Si quisiésemos que realizase búsquedas sólo en una categoría determinada utilizaríamos el mismo sistema, pero quitando el -, o sea cat=12 mostraría sólo posts de la categoría 12. Si queremos mostrar posts de varias categorías lo haríamos así, cat=12,13,14, es decir, poniendo todos los identificadores de las categorías separados por comas.

Por último comentaros que cuando en un query_posts utilizamos el parámetro s activamos el modo buscador de query_posts, o sea, que utilizará la condición LIKE de MySql en vez de la condición = cuando realice la SELECT en el servidor de base de datos.

No hay comentarios: