Por defecto el buscador de WordPress busca en todos los tipos de contenido: posts, páginas, adjuntos, etc. Para poder personalizar los resultados de búsqueda tenemos que acotar la query de la misma. Para ello ejecutaremos una función con el hook de activación pre_get_posts
:
add_action('pre_get_posts', 'modifica_busqueda');
La función que modificará la query de la búsqueda seguirá de la siguiente manera:
function modifica_busqueda ( $query ) { // En este caso limitamos la búsqueda a los // posts de la categoría "noticias" if( $query->is_main_query() && $query->is_search ) { $query->set('category_name', 'noticias'); } return $query; }
En este caso, tal como está comentado en la función, conseguimos que solo se busque en los posts de la categoría «noticias».
Otro ejemplo muy útil sería acotar la búsqueda a solo los posts:
function modifica_busqueda ( $query ) { // Limitamos la búsqueda a solo posts if( $query->is_main_query() && $query->is_search ) { $query->set('post_type', 'post'); } return $query; }
Hola!
Dices que por defecto el buscador de wordpress busca en todos los contenidos. A mi no me sucede eso. Sólo me busca en post y páginas, y me gustaría que buscase tambien en los adjuntos. Como podría hacerlo? (soy bastante torpe con el tema de meter código)
Gracias!
Hola Raul!
Sigue la guía que hay en este página: http://brimosoft.nl/2013/04/03/search-for-attachments/
Espero que te sirva 😉
Hola Manuel!
Muchas gracias por el artículo, está bastante bueno!
Quisiera saber algo. En mi blog de cocina (http://foodografo.com/) si coloco en el campo de busqueda una palabra, por ejemplo «albondigas» me aparecen los posts que las contienen de manera larga y realmente se hace pesado porque tienes que ir bajando para ver la siguiente receta.
Lo que me gustaría hacer es configurar la búsqueda o instalar un plugin que me permita personalizar la búsqueda de manera que al escribir la palabra «albondiga» te salgan unos cuadros pequeños con todas las recetas que lo incluyen y uno pueda clicar e ir entrando a la receta que más te llame la atención.
No se si me hice entender. Muchas gracias por el apoyo!
Jose.
Puedes probar con este plugin, pero vigila que consume muchos recursos: https://es.wordpress.org/plugins/relevanssi/