Cómo crear una búsqueda personalizada en WordPress sin un complemento

Publicado: 2022-07-25

¿Se pregunta cómo crear una búsqueda personalizada en WordPress sin un complemento?

Al personalizar la búsqueda en su sitio, puede aumentar la cantidad de páginas vistas, impulsar sus ventas y ayudar a sus visitantes a encontrar lo que buscaban más rápido.

En este artículo, hablaremos sobre cómo puede personalizar la búsqueda en su sitio sin instalar un complemento y por qué debería considerar usar un complemento para hacerlo.

Aquí hay una tabla de contenido para ayudarlo a navegar rápidamente a través de este artículo:

  • ¿Por qué es importante la búsqueda personalizada para su sitio web de WordPress?
  • Inconvenientes de crear una búsqueda personalizada sin un complemento
  • El método más fácil para personalizar la búsqueda de WordPress en su sitio
  • Crear una búsqueda personalizada en WordPress sin un complemento

¡Vamos a empezar!

¿Por qué es importante la búsqueda personalizada para su sitio web de WordPress?

Para comenzar, hablemos sobre cómo una búsqueda personalizada en su sitio puede ayudarlo a hacer crecer su negocio.

La personalización de la búsqueda en su sitio le permite:

  • Ofrezca resultados de búsqueda más relevantes . Limite su búsqueda a categorías específicas para limitar sus resultados de búsqueda y ayudar a los visitantes a encontrar lo que buscan más rápido.
  • Obtenga más páginas vistas y ventas . Aumente la visibilidad de su contenido y aumente sus ingresos al promocionar publicaciones o productos específicos en sus resultados de búsqueda.
  • Construya una audiencia leal . Es más probable que los visitantes que han tenido una experiencia de búsqueda positiva en su sitio regresen nuevamente para explorar más de su contenido.
  • Conduzca más tráfico desde los motores de búsqueda . Al ayudar a los visitantes a encontrar el contenido correcto más rápido, hace que permanezcan en su sitio por más tiempo, lo cual es uno de los principales factores de clasificación en Google.

Una vez que hayamos descubierto los beneficios que la búsqueda personalizada puede aportar a su negocio, hablemos de las desventajas que puede esperar si lo hace sin un complemento.

Inconvenientes de crear una búsqueda personalizada sin un complemento

Debe considerar un par de inconvenientes importantes si desea crear una búsqueda personalizada en su sitio sin un complemento.

1. Requiere habilidades de codificación y conocimiento profundo de WordPress

La principal desventaja de personalizar la búsqueda de su 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 su búsqueda es modificar los archivos principales de WordPress y el código de su tema.

Es inconveniente, requiere mucho tiempo y no es adecuado para personas que no son expertas en tecnología.

Además, si hace algo mal, puede provocar el bloqueo de su sitio, por lo que debe tener mucho cuidado al personalizar los archivos de su tema.

2. Tendrás menos funciones

Además, incluso si tiene amplias habilidades de codificación, la cantidad de funciones de búsqueda personalizadas que puede agregar sin un complemento es limitada.

Por ejemplo, no puede agregar varios motores de búsqueda con un conjunto único de reglas, excluir páginas o categorías específicas de la búsqueda, administrar el orden de los resultados de búsqueda y mucho más.

Entonces, si es crucial para usted obtener un control completo sobre cómo funciona la búsqueda en su sitio, debería considerar usar un potente complemento de búsqueda de WordPress.

3. Puede perder sus cambios

Finalmente, dado que personalizar la búsqueda sin un complemento requiere realizar modificaciones en los archivos de su sitio, perderá todos los cambios que haya realizado cuando actualice su tema o versión de WordPress.

La mejor manera de evitar tales situaciones es usar un complemento de búsqueda de WordPress, ya que mantiene su configuración haga lo que haga con su sitio.

Con eso, echemos un vistazo a cómo puede personalizar la búsqueda en su sitio con unos pocos clics, sin necesidad de codificación e independientemente de sus habilidades técnicas.

El método más fácil para personalizar la búsqueda de WordPress en su sitio

La forma más fácil de personalizar una búsqueda en su sitio de WordPress es usar un complemento como SearchWP.

SearchWP logo

SearchWP es el complemento de búsqueda de WordPress mejor calificado en el que confían más de 30,000 propietarios de sitios web.

Su interfaz amigable para principiantes y sus potentes funciones le permiten personalizar completamente su búsqueda incluso si lanza su primer sitio web.

Por ejemplo, con SearchWP, puede administrar dónde debe buscar WordPress coincidencias, 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 puedes hacer la mayoría de estas cosas con solo unos pocos clics.

También puede usar SearchWP para:

  • Mostrar resultados de búsqueda en modo en vivo . Habilite la visualización en vivo de los resultados de búsqueda en su sitio para que sus visitantes puedan navegar instantáneamente al contenido que desean.
  • Rastree las búsquedas de sus visitantes . Recopile datos sobre lo que los visitantes buscan en su sitio, en qué resultados se puede hacer clic y otros datos valiosos.
  • Resalte los términos de búsqueda en los resultados de búsqueda . Ayude a sus visitantes a determinar si han encontrado el contenido correcto más rápido resaltando las palabras clave en los resultados de búsqueda.
  • Excluye páginas específicas de la búsqueda . Deshágase del desorden en los resultados de búsqueda de su sitio excluyendo páginas redundantes y contenido desactualizado.

Después de saber por qué SearchWP es el mejor complemento de búsqueda de WordPress, veamos cómo puede usarlo para personalizar la búsqueda en su sitio según sus necesidades.

Paso 1: Instalar y activar SearchWP

El primer paso es ir y obtener su copia de SearchWP aquí.

Una vez hecho esto, vaya al panel de control de su cuenta de SearchWP y haga clic en Descargas .

go to the Downloads tab

Luego, presione el botón Descargar SearchWP y guarde el complemento en su computadora.

click Download SearchWP

Después de la descarga, copie su clave de licencia de SearchWP en la esquina inferior izquierda.

copy your license key

A continuación, deberá instalar SearchWP en su sitio. Si necesita ayuda, puede seguir nuestra guía detallada sobre cómo instalar un complemento de WordPress.

Una vez que tenga SearchWP en funcionamiento en su sitio, el siguiente paso es activar su copia del complemento.

Para hacer eso, vaya a su panel de control de WordPress y haga clic en Activar licencia debajo del botón SearchWP en el panel superior.

click Activate License

Después de eso, ingrese su clave de licencia en el campo Licencia y presione Activar .

press Activate

Después de activar su copia de SearchWP, estará listo para comenzar a personalizar su búsqueda.

Paso 2: comienza a personalizar tu búsqueda

Para comenzar, haga clic en Motores en su configuración de SearchWP.

go to Engines

Puede agregar, eliminar y personalizar sus motores de búsqueda en esta pestaña.

your search engines

SearchWP crea automáticamente el motor de búsqueda predeterminado después de la instalación.

Está vinculado a todos los formularios de búsqueda existentes, por lo que al personalizarlo, puede controlar cómo funciona la búsqueda en su sitio.

Por ejemplo, puede administrar la lista de sus fuentes de búsqueda, hacer que WordPress considere nuevos atributos de contenido, limitar la búsqueda a categorías específicas y más.

Con SearchWP, puede agregar una cantidad ilimitada de motores de búsqueda y conectarlos a formularios de búsqueda individuales en su sitio.

Gracias a eso, puede crear rápidamente formularios de búsqueda personalizados para diversas necesidades comerciales y colocarlos donde desee en su 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 WordPress buscará contenido configurando su lista de fuentes de búsqueda.

Administre sus fuentes de búsqueda

Para comenzar, presione el botón Fuentes y configuración en la sección Motor de búsqueda predeterminado .

click Sources and Settings

Aquí puede administrar dónde WordPress debe buscar coincidencias. De forma predeterminada, busca entre publicaciones , páginas y archivos multimedia .

uncheck search sources

Para eliminar una fuente de búsqueda, desmarque la casilla junto a ella. Por ejemplo, limitemos la búsqueda en nuestro sitio solo a publicaciones.

Para hacer eso, desmarcaremos todas las demás fuentes excepto Publicaciones y luego haremos clic en Listo para guardar los cambios.

left only Posts search source active

Una vez que hayamos configurado nuestra lista de fuentes de búsqueda, mejoremos también nuestra búsqueda haciendo que WordPress considere los atributos y taxonomías de las publicaciones.

Configure sus atributos de búsqueda

Para comenzar, haga clic en el botón Agregar o quitar atributos en la sección Fuente de búsqueda de publicaciones.

click Add Remove attributes

En la ventana que aparece, puede especificar los atributos y las taxonomías que desea que WordPress tenga en cuenta al realizar una búsqueda.

add new attributes

Para hacer que un campo personalizado específico se pueda buscar, haga clic en el campo Campos personalizados e ingrese su nombre.

click on the Custom Fields field

También existe el atajo Any Meta Key , al agregarlo, puede hacer que se puedan buscar todos los campos de búsqueda existentes a la vez.

click Add Any Meta key

Cuando haya terminado de agregar campos personalizados, también hagamos taxonomías de índice de WordPress.

En WordPress, las taxonomías son un método para clasificar contenido y datos. Por ejemplo, podrían ser categorías de publicaciones, etiquetas, formato u otra cosa.

Para hacer que se pueda buscar una nueva taxonomía, haga clic en el campo Taxonomías y seleccione la taxonomía deseada.

click on the Taxonomies field

Por ejemplo, hagamos que WordPress considere etiquetas de publicación al realizar una búsqueda. Para hacer eso, elija la opción Etiquetas en el menú desplegable.

choose the Tags taxonomy

También puede hacer que WordPress ignore los atributos de publicación predeterminados, como Título , Contenido , Slug y Extracto , desmarcando las casillas junto a ellos.

uncheck the default attributes

Después de terminar de administrar los atributos de la fuente de búsqueda de publicaciones, presione Listo para guardar los cambios.

press Done

Ahora, veamos cómo puede restringir su búsqueda para brindarles a sus visitantes resultados más relevantes.

Limitar la búsqueda a una categoría de publicación específica

Para comenzar, presione el botón Editar reglas .

click Edit Rules

Luego, haga clic en Agregar regla .

click Add Rule

Aquí puede agregar reglas según las cuales WordPress filtrará el contenido en los resultados de búsqueda.

there are no rules by default

Por ejemplo, puede agregar una regla para excluir categorías específicas de su búsqueda o, viceversa, limitar su búsqueda a ellas.

Supongamos que queremos limitar la búsqueda en nuestro sitio de prueba a la categoría Noticias .

Para hacer eso, primero asegúrese de elegir la opción Solo mostrar entradas si: y la taxonomía Categorías .

limit search to a specific category

Luego ingrese el nombre de una categoría a la que desea limitar su búsqueda en el campo más a la derecha. En nuestro caso, serán las Noticias .

specify a category

Después de terminar de personalizar las reglas de su motor de búsqueda, haga clic en Listo para guardar los cambios.

click Done to save your rules

Cuando esté satisfecho con la forma en que personalizó su búsqueda, estará listo para pasar al paso final y guardar su motor de búsqueda.

Guarde su motor de búsqueda

Para hacer eso, presione Guardar motores en la esquina superior derecha de su tablero de SearchWP.

click Save Engines

Luego haga clic en Reconstruir índice para que WordPress vuelva a indexar todo su contenido y aplique la nueva configuración del motor de búsqueda.

click Rebuild Index

Eso es todo. Ha personalizado completamente la búsqueda según sus necesidades sin escribir una sola línea de código.

Probemos su nueva búsqueda para asegurarnos de que funciona de acuerdo con sus personalizaciones.

Paso 3: prueba tu nueva búsqueda

Para comenzar, vaya a su sitio web y realice una búsqueda de prueba. Por ejemplo, dado que hicimos que las etiquetas de publicación se puedan buscar, intentemos encontrar una publicación solo por sus etiquetas.

En nuestro sitio de prueba, tenemos una publicación llamada "Nuevas funciones de WordPress", que tiene la etiqueta "Actualizaciones".

Busquemos por esta etiqueta y veamos si podemos encontrar nuestra publicación.

press Find Results

Encontramos la publicación a pesar de que no hay la palabra "actualizaciones" en su título, extracto o contenido.

we found the post

Significa que nuestro motor de búsqueda ahora considera etiquetas de publicaciones cuando busca coincidencias.

Asegurémonos también de que la búsqueda en nuestro sitio ahora se limite a la categoría "Noticias".

Para ello, buscaremos “WordPress”, ya que tenemos muchas publicaciones relacionadas con WordPress en otras categorías.

make another search

Puede ver que solo las publicaciones de la categoría Noticias se muestran entre los resultados de búsqueda que obtuvimos.

we found the right posts

Significa que la regla que agregamos a nuestro motor de búsqueda, que dice que WordPress solo debe buscar entre las noticias, funciona como debería.

Entonces, acaba de aprender la forma más fácil de personalizar su búsqueda. Ahora veamos cómo puede hacerlo sin usar un complemento.

Crear una búsqueda personalizada en WordPress sin un complemento

Para personalizar su búsqueda sin un complemento, deberá realizar modificaciones en su tema.

La forma más segura de hacerlo es crear un tema secundario del tema actual que está utilizando en su sitio.

De esta manera, cuando realiza cambios en un tema secundario, su tema principal permanece intacto, lo que le permite cambiar rápidamente a él en caso de errores críticos.

Además, tener un tema secundario le permite actualizar su tema principal sin perder los cambios. Para obtener más detalles sobre cómo crear un tema secundario, consulte este tutorial sobre cómo crear un tema secundario.

Después de crear y activar un tema secundario, estará listo para comenzar a personalizar su búsqueda.

Para comenzar, vaya a Apariencia » Editor de archivos de temas en su panel de control de WordPress.

go to Theme Files Editor

Luego, busque el archivo functions.php en el panel derecho y haga clic en él.

click the function file

Después de eso, siga las instrucciones a continuación según las personalizaciones que desee realizar para buscar en su sitio.

Habilitar publicaciones de búsqueda por etiquetas y categorías

Para hacer que las etiquetas y categorías de publicaciones se puedan buscar en su sitio sin un complemento, agregue el siguiente código al archivo functions.php de su tema:

/*
 * ----------------------------------------------------------
 *
 * 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 .= "
    LEFT JOIN
    (
        {$wpdb->term_relationships}
        INNER JOIN
            {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id
        INNER JOIN
            {$wpdb->terms} ON {$wpdb->terms}.term_id = {$wpdb->term_taxonomy}.term_id
    )
    ON {$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id ";
 
	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( "'publish'" );
 
	// Include private posts if the user is logged in.
	if ( $user_id ) {
		$status[]    = "'private'";
		$user_where .= " AND {$wpdb->posts}.post_author = {$user_id}";
	}
 
	$user_where .= " AND {$wpdb->posts}.post_status IN( " . implode( ',', $status ) . " ) ";
 
	$where .= " OR (
                    {$wpdb->term_taxonomy}.taxonomy IN( 'category', 'post_tag' )
                    AND
                    {$wpdb->terms}.name LIKE '%" . esc_sql( get_query_var( 's' ) ) . "%'
                    {$user_where}
                )";
 
	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 "{$wpdb->posts}.ID";
}
 
add_filter( 'posts_groupby', 'search_custom_posts_groupby', 10, 2 );

Cuando haya terminado, presione el botón Actualizar archivo para guardar los cambios.

press Done

Ahora los visitantes de su sitio pueden buscar publicaciones por etiquetas y categorías.

Habilitar búsqueda por contenido de comentario y nombres de autor

Para hacer que los comentarios y los nombres de los autores se puedan buscar en su sitio sin un complemento, agregue el siguiente código al archivo functions.php de su 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->comments . ' ON ' . $wpdb->posts . '..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(
		"/\(\s*" . $wpdb->posts . ".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
		"(" . $wpdb->posts . ".post_title LIKE $1) OR (" . $wpdb->comments . ".comment_author LIKE $1) OR (" . $wpdb->comments . ".comment_content LIKE $1)",
		$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 haya terminado, haga clic en el botón Actualizar archivo en la parte inferior del editor para guardar los cambios.

click Done

Ahora sus visitantes pueden buscar por contenido de comentarios y nombres de autores.

Habilitar la búsqueda por campos personalizados de publicación

Para hacer que los campos personalizados se puedan buscar en su sitio sin un complemento, agregue el siguiente código al archivo functions.php de su tema:

/*
 * ----------------------------------------------------------
 *
 * 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->postmeta. ' ON '. $wpdb->posts . '..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(
		"/\(\s*" . $wpdb->posts . ".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
		"(" . $wpdb->posts . ".post_title LIKE $1) OR (" . $wpdb->postmeta . ".meta_value LIKE $1)", $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 );

Una vez hecho esto, presione el botón Actualizar archivo en la parte inferior del editor para guardar los cambios.

press Done

Ahora sus visitantes pueden buscar publicaciones por campos personalizados.

En este artículo, aprendió cómo crear una búsqueda personalizada en su sitio sin un complemento y por qué usar un complemento para este objetivo es mucho más conveniente.

Esperamos que lo ayude a tomar una decisión y elegir qué método prefiere usar en su sitio.

¿Listo para personalizar la búsqueda en su sitio con unos pocos clics? Puede comenzar con SearchWP aquí.

¿Está buscando una forma de crear un tema personalizado para su sitio? Consulte nuestro tutorial paso a paso sobre cómo crear un tema de WordPress personalizado.

¿Quiere personalizar su página de resultados de búsqueda? Siga nuestra guía de cómo personalizar su página de resultados de búsqueda de WordPress.