¿Te preguntas cómo crear una búsqueda personalizada en WordPress sin un plugin?
Al personalizar la búsqueda en tu sitio, puedes aumentar el número de visitas a páginas, impulsar tus ventas y ayudar a tus visitantes a encontrar lo que buscaban más rápido.
En este artículo, hablaremos sobre cómo puedes personalizar la búsqueda en tu sitio sin instalar un plugin y por qué aún deberías considerar usar un plugin para hacerlo.
¡Empecemos!
¿Por qué es importante la búsqueda personalizada para tu sitio web de WordPress?
Para empezar, hablemos de cómo una búsqueda personalizada en tu sitio puede ayudarte a hacer crecer tu negocio.
Personalizar la búsqueda en tu sitio te permite:
- Ofrecer resultados de búsqueda más relevantes. Limita tu búsqueda a categorías específicas para acotar los resultados y ayudar a los visitantes a encontrar lo que buscan más rápido.
- Conseguir más visitas a páginas y ventas. Mejora la descubribilidad de tu contenido y aumenta tus ingresos promocionando publicaciones o productos específicos en tus resultados de búsqueda.
- Crear una audiencia leal. Los visitantes que han tenido una experiencia de búsqueda positiva en tu sitio son más propensos a volver para explorar más contenido.
- Generar más tráfico desde los motores de búsqueda. Al ayudar a los visitantes a encontrar el contenido adecuado más rápido, haces que permanezcan más tiempo en tu sitio, lo cual es uno de los principales factores de clasificación en Google.
Después de haber determinado los beneficios que la búsqueda personalizada puede aportar a tu negocio, hablemos de las desventajas que puedes esperar si lo haces sin un plugin.
Desventajas de crear una búsqueda personalizada sin un plugin
Deberías considerar un par de desventajas importantes si quieres crear una búsqueda personalizada en tu sitio sin un plugin.
1. Requiere habilidades de codificación y un profundo conocimiento de WordPress
La principal desventaja de personalizar la búsqueda de tu sitio manualmente es que requiere una amplia experiencia en codificación y un profundo conocimiento de WordPress.
La cuestión es que no hay herramientas de configuración de búsqueda predeterminadas en WordPress.
Debido a eso, la única forma de personalizar tu búsqueda es modificar los archivos principales de WordPress y el código de tu tema.
Es inconveniente, consume mucho tiempo y no es adecuado para personas no expertas en tecnología.
Además, si haces algo mal, puede provocar el fallo de tu sitio, así que debes tener mucho cuidado al personalizar los archivos de tu tema.
2. Tendrás menos funciones
Además, incluso si tienes amplias habilidades de codificación, el número de funciones de búsqueda personalizadas que puedes añadir sin un plugin es limitado.
Por ejemplo, no puedes añadir múltiples motores de búsqueda con un conjunto único de reglas, excluir páginas o categorías específicas de la búsqueda, gestionar el orden de tus resultados de búsqueda y mucho más.
Así que si es crucial para ti tener un control completo sobre cómo funciona la búsqueda en tu sitio, deberías considerar usar un potente plugin de búsqueda de WordPress.
3. Puedes perder tus cambios
Finalmente, dado que personalizar la búsqueda sin un plugin requiere hacer ediciones en los archivos de tu sitio, perderás todos los cambios que hiciste al actualizar tu tema o la versión de WordPress.
La mejor manera de evitar este tipo de situaciones es usar un plugin de búsqueda de WordPress, ya que mantiene tu configuración sin importar lo que hagas con tu sitio.
Con esto, veamos cómo puedes personalizar la búsqueda en tu sitio en unos pocos clics, sin necesidad de código y sin importar tus habilidades técnicas.
El método más fácil para personalizar la búsqueda de WordPress en tu sitio
La forma más sencilla de personalizar la búsqueda en tu sitio de WordPress es usar un plugin como SearchWP.

SearchWP es el plugin de búsqueda de WordPress mejor valorado, en el que confían más de 50.000 propietarios de sitios web.
Su interfaz fácil de usar y sus potentes funciones te permiten personalizar completamente tu búsqueda, incluso si acabas de lanzar tu primer sitio web.
Por ejemplo, con SearchWP, puedes gestionar dónde debe buscar coincidencias WordPress, limitar la búsqueda a un tipo específico de contenido, habilitar la búsqueda por etiquetas y campos personalizados, y mucho más.
Lo mejor es que puede hacer la mayoría de estas cosas en solo unos pocos clics.
También puedes usar SearchWP para:
- Mostrar resultados de búsqueda en modo en vivo: Habilita la visualización en tiempo real de los resultados de búsqueda en tu sitio para que tus visitantes puedan navegar instantáneamente al contenido que desean.
- Rastrear las búsquedas de tus visitantes: Recopila datos sobre lo que los visitantes buscan en tu sitio, qué resultados son los más clicados y otros datos valiosos.
- Resaltar términos de búsqueda en los resultados: Ayuda a tus visitantes a determinar si han encontrado el contenido correcto más rápido resaltando palabras clave en los resultados de búsqueda.
- Excluir páginas específicas de la búsqueda: Elimina el desorden en los resultados de búsqueda de tu sitio excluyendo páginas redundantes y contenido obsoleto.
Después de aprender por qué SearchWP es el mejor plugin de búsqueda de WordPress, veamos cómo puedes usarlo para personalizar la búsqueda en tu sitio según tus necesidades.
Paso 1: Instalar y activar SearchWP
El primer paso es ir al sitio web de SearchWP y obtener tu copia de SearchWP.
Una vez hecho esto, simplemente ve a tu panel de cuenta de SearchWP y haz clic en Descargas.

Luego, puedes presionar el botón Descargar SearchWP y guardar el plugin en tu ordenador.
Después de descargar, también te sugerimos copiar tu clave de licencia de SearchWP en la esquina inferior izquierda.
A continuación, necesitarás instalar SearchWP en tu sitio. Si necesitas ayuda, puedes seguir nuestra guía detallada sobre cómo instalar un plugin de WordPress.
Después de eso, verá la pantalla de bienvenida y el asistente de configuración de SearchWP. Continúe y haga clic en el botón 'Iniciar asistente de incorporación' y siga las instrucciones en pantalla.

Paso 2: Empieza a personalizar tu búsqueda
A continuación, puedes añadir, eliminar y personalizar motores de búsqueda en SearchWP. Piensa en ellos como un conjunto de reglas que se seguirán al realizar una búsqueda en tu sitio.
Al personalizar el motor, puedes gestionar la lista de tus fuentes de búsqueda, hacer que considere nuevos atributos de contenido, limitar la búsqueda a categorías específicas y más.
Con SearchWP, puedes añadir un número ilimitado de motores de búsqueda y conectarlos a formularios de búsqueda individuales en tu sitio.
Gracias a eso, puedes crear rápidamente formularios de búsqueda personalizados para diversas necesidades empresariales y colocarlos donde quieras en tu sitio.
Dado que en este tutorial queremos personalizar cómo funciona la búsqueda en todo el sitio, editaremos el motor de búsqueda Predeterminado.
Primero, especifiquemos dónde buscará WordPress contenido configurando su lista de fuentes de búsqueda.
Gestionar tus fuentes de búsqueda
Para empezar, dirígete a SearchWP » Algoritmo desde tu panel de WordPress.
Desde aquí, puedes pulsar el botón Fuentes y Ajustes.

Aquí puedes gestionar qué fuentes incluir en el proceso de búsqueda.
Por defecto, busca entre Entradas, Páginas y archivos Multimedia.

Para eliminar una fuente de búsqueda, puedes desmarcar una casilla junto a ella. Por ejemplo, limitemos la búsqueda en nuestro sitio solo a las entradas.
Para ello, desmarcaremos todas las demás fuentes excepto Entradas y luego haremos clic en Hecho para guardar los cambios.

Una vez que hayamos configurado nuestra lista de fuentes de búsqueda, mejoremos también nuestra búsqueda haciendo que WordPress considere los atributos de las entradas y las taxonomías.
Configurar tus atributos de búsqueda
Para empezar, puedes hacer clic en el botón Añadir/Eliminar Atributos en la sección de la fuente de búsqueda Entradas.

En la siguiente ventana, puedes especificar atributos como campos personalizados y taxonomías que quieres que SearchWP considere al realizar una búsqueda.
Por defecto, incluirá título, contenido, slug, extracto y autor como atributos.

Para hacer que un campo personalizado específico sea buscable, puedes hacer clic en el campo Campos Personalizados e introducir su nombre.
De forma similar, también puedes incluir taxonomías como etiquetas y categorías para la fuente.
Para hacer que una nueva taxonomía sea buscable, haz clic en el campo Taxonomías y selecciona la taxonomía deseada.
Por ejemplo, hagamos que WordPress considere las etiquetas de las entradas al realizar una búsqueda. Para ello, elige la opción Etiquetas del menú desplegable.

Después de terminar de gestionar los atributos de la fuente de Entradas, pulsa Hecho para guardar los cambios.
Ahora, veamos cómo puedes acotar tu búsqueda para dar a tus visitantes resultados más relevantes.
Limitar la búsqueda a una categoría de entrada específica
Para empezar, pulsa el botón Editar Reglas para tu fuente.

Ahora aparecerá una nueva ventana.
Simplemente haz clic en el botón Añadir Regla.

Aquí puedes añadir reglas según las cuales WordPress filtrará el contenido en los resultados de búsqueda.
Por ejemplo, puedes añadir una regla para excluir categorías específicas de tu búsqueda o limitarla a ellas.
Supongamos que queremos limitar la búsqueda en nuestro sitio de prueba a la categoría Noticias.
Para ello, primero asegúrate de elegir la opción Excluir entradas si: y luego elige la taxonomía Categorías.
Desde aquí, puedes introducir el nombre de una categoría a la que quieras limitar tu búsqueda en el campo más a la derecha. En nuestro caso, será Noticias.

Después de terminar de personalizar las reglas de tu motor de búsqueda, haz clic en Hecho para guardar tus cambios.
Cuando estés satisfecho con cómo has personalizado tu búsqueda, estarás listo para pasar al último paso y guardar tu motor de búsqueda.
Guarda tu motor de búsqueda
Para ello, pulsa el botón Guardar en la esquina superior derecha de tu panel de SearchWP.

Eso es todo. Has personalizado completamente la búsqueda a tus necesidades sin escribir una sola línea de código.
Probemos tu nueva búsqueda para asegurarnos de que funciona según tus personalizaciones.
Paso 3: Probar su nueva búsqueda
Para empezar, ve a tu sitio web y realiza una búsqueda de prueba.
Por ejemplo, dado que hemos hecho que las etiquetas de las entradas sean buscables, intentemos encontrar una entrada solo por sus etiquetas.
En nuestro sitio de prueba, tenemos una entrada llamada "Nuevas características de WordPress", que tiene la etiqueta "Actualizaciones".
Busquemos por esta etiqueta y veamos si podemos encontrar nuestra entrada.

Encontramos la entrada a pesar de que no hay ninguna palabra "actualizaciones" en su título, extracto o contenido.
Significa que nuestro motor de búsqueda ahora considera las etiquetas de las entradas al buscar coincidencias.

Asegurémonos también de que la búsqueda en nuestro sitio ahora se limita a la categoría "Noticias".
Para ello, buscaremos "WordPress", ya que tenemos muchas entradas relacionadas con WordPress en otras categorías.

Puedes ver que solo las entradas de la categoría Noticias se muestran entre los resultados de búsqueda que obtuvimos.
Significa que la regla que añadimos a nuestro motor de búsqueda, que dice que WordPress solo debe buscar entre las noticias, funciona como debería.

Así que, acabas de aprender la forma más fácil de personalizar tu búsqueda. Ahora veamos cómo puedes hacerlo sin usar un plugin.
Crea una búsqueda personalizada en WordPress sin un plugin
Para personalizar tu búsqueda sin un plugin, necesitarás editar tu tema.
La forma más segura de hacerlo es crear un tema hijo del tema actual que estás usando en tu sitio.
De esta manera, cuando realices cambios en un tema hijo, tu tema padre permanecerá intacto, lo que te permitirá cambiar rápidamente a él en caso de errores críticos.
Además, tener un tema hijo te permite actualizar tu tema padre sin perder tus cambios. Para más detalles sobre cómo crear un tema hijo, consulta este tutorial sobre cómo crear un tema hijo.
Consejo profesional: También puedes usar un plugin de copias de seguridad de WordPress para asegurarte de tener una copia reciente de tu sitio lista para restaurar en caso de que algo salga mal.
Después de crear y activar un tema hijo, estarás listo para empezar a personalizar tu búsqueda.
Para empezar, navega a Apariencia » Editor de archivos de temas en tu panel de WordPress. Luego, busca el archivo functions.php en el panel derecho y haz clic en él.
Si no te sientes cómodo editando los archivos del tema, te sugerimos usar WPCode. Te ayuda a insertar código personalizado en tu sitio sin arriesgarte a romper nada. Puedes consultar esta guía sobre cómo copiar y pegar fragmentos de código de la web en WordPress.

Después de eso, sigue las instrucciones a continuación dependiendo de qué personalizaciones quieras hacer en la búsqueda de tu sitio.
Habilitar la búsqueda de entradas por etiquetas y categorías
Para que las etiquetas y categorías de las entradas sean buscables en tu sitio sin un plugin, necesitarás añadir el siguiente código al archivo functions.php de tu tema.
<pre class="wp-block-syntaxhighlighter-code">
/*
* ----------------------------------------------------------
*
* Search Posts by Tags and Categories
*
* ----------------------------------------------------------
*/
/**
* Join the terms, term_relationship, and term_taxonomy tables.
*
* @global $wpdb
*
* @param string $join The JOIN clause.
* @param object $query The current WP_Query instance.
*
* @return string The JOIN clause.
*/
function search_custom_posts_join( $join, $query ) {
global $wpdb;
if ( ! is_main_query() || ! is_search() ) {
return $join;
}
$join .= &amp;amp;quot;
LEFT JOIN
(
{$wpdb-&amp;amp;gt;term_relationships}
INNER JOIN
{$wpdb-&amp;amp;gt;term_taxonomy} ON {$wpdb-&amp;amp;gt;term_taxonomy}.term_taxonomy_id = {$wpdb-&amp;amp;gt;term_relationships}.term_taxonomy_id
INNER JOIN
{$wpdb-&amp;amp;gt;terms} ON {$wpdb-&amp;amp;gt;terms}.term_id = {$wpdb-&amp;amp;gt;term_taxonomy}.term_id
)
ON {$wpdb-&amp;amp;gt;posts}.ID = {$wpdb-&amp;amp;gt;term_relationships}.object_id &amp;amp;quot;;
return $join;
}
add_filter( 'posts_join', 'search_custom_posts_join', 10, 2 );
/**
* Modify the WHERE clause to include searches against taxonomies.
*
* @global $wpdb
*
* @param string $where The WHERE clause.
* @param WP_Query $query The current WP_Query instance.
*
* @return string The WHERE clause.
*/
function search_custom_posts_where( $where, $query ) {
global $wpdb;
if ( ! is_main_query() || ! is_search() ) {
return $where;
}
// Get additional where clause for the user.
$user_where = '';
$user_id = get_current_user_id();
$status = array( &amp;amp;quot;'publish'&amp;amp;quot; );
// Include private posts if the user is logged in.
if ( $user_id ) {
$status[] = &amp;amp;quot;'private'&amp;amp;quot;;
$user_where .= &amp;amp;quot; AND {$wpdb-&amp;amp;gt;posts}.post_author = {$user_id}&amp;amp;quot;;
}
$user_where .= &amp;amp;quot; AND {$wpdb-&amp;amp;gt;posts}.post_status IN( &amp;amp;quot; . implode( ',', $status ) . &amp;amp;quot; ) &amp;amp;quot;;
$where .= &amp;amp;quot; OR (
{$wpdb-&amp;amp;gt;term_taxonomy}.taxonomy IN( 'category', 'post_tag' )
AND
{$wpdb-&amp;amp;gt;terms}.name LIKE '%&amp;amp;quot; . esc_sql( get_query_var( 's' ) ) . &amp;amp;quot;%'
{$user_where}
)&amp;amp;quot;;
return $where;
}
add_filter( 'posts_where', 'search_custom_posts_where', 10, 2 );
/**
* Set the GROUP BY clause to post IDs.
*
* @global $wpdb
*
* @param string $groupby The GROUPBY clause.
* @param WP_Query $query The current WP_Query instance.
*
* @return string The GROUPBY clause.
*/
function search_custom_posts_groupby( $groupby, $query ) {
global $wpdb;
if ( ! is_main_query() || ! is_search() ) {
return $groupby;
}
return &amp;amp;quot;{$wpdb-&amp;amp;gt;posts}.ID&amp;amp;quot;;
}
add_filter( 'posts_groupby', 'search_custom_posts_groupby', 10, 2 );
</pre>
Cuando hayas terminado, pulsa el botón Actualizar archivo para guardar tus cambios.

Ahora tus visitantes pueden buscar entradas por etiquetas y categorías.
Habilitar búsqueda por contenido de comentarios y nombres de autor
Para que los comentarios y los nombres de autor se puedan buscar en tu sitio sin un plugin, añade el siguiente código al archivo functions.php de tu tema:
/*
* ----------------------------------------------------------
*
* Search by Comment Content and Author Names
*
* ----------------------------------------------------------
*/
/**
* Joins the comments and posts tables.
*
* @global $wpdb
*
* @param string $join The JOIN clause.
* @param object $query The current WP_Query instance.
*
* @return string The JOIN clause.
*/
function search_custom_comments_posts_join( $join, $query ) {
global $wpdb;
if ( ! is_main_query() || ! is_search() ) {
return $join;
}
$join .= ' LEFT JOIN ' . $wpdb-&amp;amp;gt;comments . ' ON ' . $wpdb-&amp;amp;gt;posts . '.ID = ' . $wpdb-&amp;amp;gt;comments . '.comment_post_ID ';
return $join;
}
add_filter( 'posts_join', 'search_custom_comments_posts_join', 10, 2 );
/**
* Modify the WHERE clause to include searches against comments.
*
* @global $wpdb
*
* @param string $where The WHERE clause.
* @param WP_Query $query The current WP_Query instance.
*
* @return string The WHERE clause.
*/
function search_custom_comments_posts_where( $where, $query ) {
global $wpdb;
if ( ! is_main_query() || ! is_search() ) {
return $where;
}
$where = preg_replace(
&amp;amp;quot;/\(\s*&amp;amp;quot; . $wpdb-&amp;amp;gt;posts . &amp;amp;quot;.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/&amp;amp;quot;,
&amp;amp;quot;(&amp;amp;quot; . $wpdb-&amp;amp;gt;posts . &amp;amp;quot;.post_title LIKE $1) OR (&amp;amp;quot; . $wpdb-&amp;amp;gt;comments . &amp;amp;quot;.comment_author LIKE $1) OR (&amp;amp;quot; . $wpdb-&amp;amp;gt;comments . &amp;amp;quot;.comment_content LIKE $1)&amp;amp;quot;,
$where
);
return $where;
}
add_filter( 'posts_where', 'search_custom_comments_posts_where', 10, 2 );
/**
* Prevent search results duplicates.
*
* @param string $distinct The DISTINCT clause.
* @param WP_Query $query The current WP_Query instance.
*
* @return string The DISTINCT clause.
*/
function search_custom_comments_posts_distinct( $distinct, $query ) {
if ( ! is_main_query() || ! is_search() ) {
return $distinct;
}
return 'DISTINCT';
}
add_filter( 'posts_distinct', 'search_custom_comments_posts_distinct', 10, 2 );
Cuando hayas terminado, haz clic en el botón Actualizar archivo en la parte inferior del editor para guardar tus cambios.

Ahora tus visitantes pueden buscar por contenido de comentarios y nombres de autor.
Habilitar búsqueda por campos personalizados de entradas
Para que los campos personalizados se puedan buscar en tu sitio sin un plugin, añade el siguiente código al archivo functions.php de tu tema:
<pre class="wp-block-syntaxhighlighter-code">
/*
* ----------------------------------------------------------
*
* Search by Post Custom Fields
*
* ----------------------------------------------------------
*/
/**
* Joins the postmeta and posts tables.
*
* @global $wpdb
*
* @param string $join The JOIN clause.
* @param object $query The current WP_Query instance.
*
* @return string The JOIN clause.
*/
function search_custom_meta_posts_join( $join, $query ) {
global $wpdb;
if ( ! is_main_query() || ! is_search() ) {
return $join;
}
$join .=' LEFT JOIN '.$wpdb-&amp;amp;gt;postmeta. ' ON '. $wpdb-&amp;amp;gt;posts . '.ID = ' . $wpdb-&amp;amp;gt;postmeta . '.post_id ';
return $join;
}
add_filter( 'posts_join', 'search_custom_meta_posts_join', 10, 2 );
/**
* Modify the WHERE clause to include searches against postmeta.
*
* @global $wpdb
*
* @param string $where The WHERE clause.
* @param WP_Query $query The current WP_Query instance.
*
* @return string The WHERE clause.
*/
function search_custom_meta_posts_where( $where ) {
global $wpdb;
if ( ! is_main_query() || ! is_search() ) {
return $where;
}
$where = preg_replace(
&amp;amp;quot;/\(\s*&amp;amp;quot; . $wpdb-&amp;amp;gt;posts . &amp;amp;quot;.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/&amp;amp;quot;,
&amp;amp;quot;(&amp;amp;quot; . $wpdb-&amp;amp;gt;posts . &amp;amp;quot;.post_title LIKE $1) OR (&amp;amp;quot; . $wpdb-&amp;amp;gt;postmeta . &amp;amp;quot;.meta_value LIKE $1)&amp;amp;quot;, $where );
return $where;
}
add_filter( 'posts_where', 'search_custom_meta_posts_where', 10, 2 );
/**
* Prevent search results duplicates.
*
* @param string $distinct The DISTINCT clause.
* @param WP_Query $query The current WP_Query instance.
*
* @return string The DISTINCT clause.
*/
function search_custom_meta_posts_distinct( $distinct, $query ) {
if ( ! is_main_query() || ! is_search() ) {
return $distinct;
}
return 'DISTINCT';
}
add_filter( 'posts_distinct', 'search_custom_meta_posts_distinct', 10, 2 );
</pre>
Una vez hecho, pulsa el botón Actualizar archivo en la parte inferior del editor para guardar tus cambios.

Ahora tus visitantes pueden buscar entradas por campos personalizados.
Esperamos que este artículo te haya ayudado a aprender cómo crear una búsqueda personalizada en tu sitio sin un plugin. También te puede interesar nuestra guía sobre cómo crear un tema personalizado de WordPress y cómo personalizar tu página de resultados de búsqueda de WordPress.
¿Listo para personalizar la búsqueda en tu sitio en pocos clics? Puedes empezar con SearchWP aquí.


