Cómo limitar los resultados de búsqueda de WordPress

Todos sabemos que la función de búsqueda predeterminada de WordPress no es muy buena o al menos no tan buena como la de Google 🙂, pero existen algunos trucos para ayudar a mejorar los resultados de búsqueda. Esta publicación le mostrará diferentes métodos para limitar los resultados de su búsqueda a tipos o categorías de publicaciones específicas y cómo cambiar el número predeterminado o los resultados de búsqueda por página.

Limitar los resultados de búsqueda de WordPress por categoría

Aquí hay algunos métodos que puede utilizar para limitar los resultados de su búsqueda por categoría, que pueden ser muy útiles para sitios como WPExplorer.com, que tiene secciones como temas, complementos y el blog.

1. Uso de un campo de entrada oculto en su Searchform.php

Este es el método que utilizo actualmente en WPExplorer.com, por lo que cuando las personas buscan en el sitio principal, solo obtendrán resultados de búsqueda de la categoría “Temas de WordPress”. Todo lo que necesita hacer es agregar una entrada oculta a su searchform.php con una identificación de “gato” y la identificación de categoría para el valor.

Un searchform.php básico

Agregue lo siguiente para limitar a la categoría con un ID de 5

Código completo

2. Agregar una declaración de consulta a su archivo Search.php

Otro método útil para limitar los resultados de su búsqueda a categorías específicas es agregar una consulta a su archivo search.php justo antes de la declaración if.

Incluyendo categorías a la búsqueda

Al usar ID positivos en la consulta, puede definir qué categorías desea mostrar en los resultados de su búsqueda (mostrar categorías con ID 1, 2 y 3).

Exclusión de categorías de la búsqueda

Alternativamente, puede usar ID negativos para excluir ciertas categorías de su página de búsqueda (excluya la categoría con un ID de 7)

Excluir páginas de su página de búsqueda

A continuación, se muestran algunas formas en las que puede limitar los resultados de su búsqueda para excluir páginas de los resultados y mostrar solo publicaciones.

Usando una función

Simplemente inserte la siguiente función en su archivo functions.php

// Remove pages from search results
function exclude_pages_from_search( $query ) {
    if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) {
        $query->set( 'post_type', 'post' );
    }
}
add_filter( 'pre_get_posts','exclude_pages_from_search' );

Usando un condicional en su archivo Search.php

Otra forma de eliminar páginas de su archivo search.php es insertar un condicional en su archivo search.php justo después de “while (have_posts ())”. Esto no se recomienda si está utilizando un tema de terceros porque si actualiza el tema en el futuro perderá sus ediciones, si es su propio tema personalizado, entonces está bien.

post_type=='page' ) ) {
       continue;
   }
?>

Excluir una página o páginas específicas

También puede excluir publicaciones / páginas específicas de sus páginas de resultados de búsqueda en sus ID utilizando el siguiente código agregado en el archivo functions.php. Simplemente modifique la matriz de identificaciones para incluir las identificaciones de las páginas o publicaciones que desea excluir.

// Exclude specific posts/pages from search
function myprefix_exclude_pages_from_search( $query) {
	if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) {
		$exclude_ids = array( 7, 19 , 21 ); // Array of the ID's to exclude
		$query->set( 'post__not_in', $exclude_ids );
	}
}
add_filter( 'pre_get_posts', 'myprefix_exclude_pages_from_search' );

Limitar la búsqueda al tipo de publicación

Una de las razones para usar los tipos de puertos en WordPress es porque no los quiere en su feed o bucle principal de wp, es por eso que son perfectos para cosas como controles deslizantes, testimonios, servicios, etc. Sin embargo, sus publicaciones personalizadas aún pueden aparecer en su página de resultados de búsqueda.

1. Excluir un tipo de publicación personalizada de los resultados de la búsqueda

Todo lo que tiene que hacer para excluir publicaciones personalizadas de los resultados de búsqueda es establecer el siguiente argumento al definir su publicación personalizada (más información):

'exclude_from_search' => true

2. Usar un campo oculto en el formulario de búsqueda para mostrar solo publicaciones de un tipo de publicación personalizado específico

Alternativamente, puede usar un campo oculto en su formulario de búsqueda de la misma manera que lo hizo para limitar las categorías si desea configurar un formulario de búsqueda avanzada que solo buscará a través del tipo de publicación personalizada especificada.

Este campo adicional iría dentro de su formulario de búsqueda y simplemente reemplazaría donde dice “cartera” con su propio nombre de tipo de publicación personalizada. Este método es excelente si tiene una determinada sección en su sitio que usa tipos de publicaciones personalizadas y desea que los usuarios puedan buscar solo en esas publicaciones específicas.

Cambiar el número de resultados por página

Por defecto, WordPress usa el número definido en Configuración> Lectura (las páginas del blog muestran como máximo…) para definir cuántos resultados aparecen en la página de resultados de búsqueda. Si desea mostrar más, menos o infinitos resultados en su página de búsqueda, puede hacerlo usando el siguiente código:

// Alter search posts per page
function myprefix_search_posts_per_page( $query) {
    if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) {
        $query->set( 'posts_per_page', '10' );
    }
}
add_filter( 'pre_get_posts', 'myprefix_search_posts_per_page' );

Este código iría en su archivo functions.php. Preferiblemente en su tema hijo si trabaja con un tema de otro desarrollador. El código establecerá sus resultados de búsqueda en “10” por página. Puedes cambiar el número a lo que quieras. Para hacer que sus resultados de búsqueda sean ilimitados, use -1. O utilice un complemento como Toolset Search para agregar paginación a sus resultados.

Búsqueda avanzada / mejor

WordPress de forma predeterminada busca en función de cualquier contenido dentro de sus publicaciones y páginas. Sería posible alterar la forma en que funciona la búsqueda a través de funciones, pero es bastante complejo, por lo que si desea modificar la forma en que realmente funciona la búsqueda (lo que busca), puede considerar usar un complemento como el Búsqueda extendida de WP enchufar. Haga clic en el banner a continuación para verlo o búsquelo en su panel de WordPress en Complementos> Agregar nuevo.

Complemento de búsqueda extendida de WP

Este complemento le permitirá controlar mejor la búsqueda predeterminada si desea buscar por meta, categorías, etiquetas, términos, título, etc. Puede incluir o excluir ciertos tipos de publicaciones de la búsqueda, excluir publicaciones que sean anteriores a una fecha específica, modificar la cantidad de elementos que se muestran en los resultados de búsqueda y más.