La función de búsqueda predeterminada de WordPress muestra resultados de todas las publicaciones, páginas y tipos de publicaciones personalizadas de WordPress. Esto es aceptable para la mayoría de los sitios web y no afecta el rendimiento o al SEO de WordPress.
Sin embargo, si estás administrando una tienda en línea, entonces hay algunas páginas que es posible que no desees que aparezcan en los resultados de búsqueda. Por ejemplo, la página de pago, la página de mi cuenta o una página de agradecimiento después de descargas exitosas.
Del mismo modo, si estás administrando un sitio web de membresía de WordPress entonces habría páginas y tipos de publicaciones personalizadas en tu sitio web que es posible que desees excluir de los resultados de búsqueda.
Y es que a veces es necesario ocultar una categoría o taxonomía u ocultar publicaciones de autores específicos. La optimización de búsqueda de sitios al excluir elementos innecesarios ofrece una mejor experiencia de usuario y mejora la usabilidad de tu sitio web.
Dicho esto, echemos un vistazo a cómo excluir páginas y elementos fácilmente de la búsqueda de WordPress.
1. Excluir publicaciones específicas, páginas y tipos de publicaciones personalizadas de la búsqueda
Lo primero que se debe hacer es instalar y activar el complemento de búsqueda excluida.
Tras la activación, edita la publicación, la página o el tipo de publicación personalizada que se desea excluir del resultado de la búsqueda. En la pantalla de edición, verás un cuadro de exclusión de búsqueda.
Simplemente marca la casilla ‘Excluir de los resultados de la búsqueda’ y no olvides guardar. Esta publicación o página en particular ya no aparecerá en los resultados de búsqueda de WordPress.
Para ver todos los artículos que has excluido de la búsqueda, ve a Configuración »Buscar excluir página. Aquí verás una lista de artículos que has excluido de los resultados de búsqueda de WordPress.
Si deseas eliminar la restricción, simplemente desmarca la casilla junto al elemento que deseas agregar y haz clic en el botón Guardar cambios.
2. Excluir categoría específica, etiqueta, taxonomía personalizada de WordPress
Este método requiere que agregues código a tu sitio web de WordPress. Si no has hecho esto antes, es mejor sacar una copia de tu sitio web.
En primer lugar, debes encontrar la identificación de categoría que deseas excluir.
A continuación, debes agregar el siguiente código al archivo functions.php de tu tema o a un complemento específico del sitio.
1 2 3 4 5 6 | function wpb_search_filter( $query ) { if ( $query ->is_search && !is_admin() ) $query ->set( 'cat' , '-7' ); return $query ; } add_filter( 'pre_get_posts' , 'wpb_search_filter' ); |
No olvides reemplazar 7 con la identificación de la categoría que deseas excluir.
Ahora, supongamos que quieres excluir más de una categoría. Así es como modificarás el código para excluir múltiples categorías.
1 2 3 4 5 6 | function wpb_search_filter( $query ) { if ( $query ->is_search && !is_admin() ) $query ->set( 'cat' , '-7, -10, -21' ); return $query ; } add_filter( 'pre_get_posts' , 'wpb_search_filter' ); |
Simplemente hemos agregado los ID de categoría que deseamos excluir separados por comas.
Excluir etiquetas específicas de la búsqueda de WordPress
Si deseas excluir publicaciones archivadas bajo una etiqueta específica, puede usar el siguiente código.
1 2 3 4 5 | if ( $query ->is_search && !is_admin() ) $query ->set( 'tag' , '-19' ); return $query ; } add_filter( 'pre_get_posts' , 'wpb_search_filter' ); |
Reemplazar 19 con la identificación de la etiqueta que deseas excluir.
Del mismo modo, puedes modificar el código para excluir varias etiquetas también.
1 2 3 4 5 | if ( $query ->is_search && !is_admin() ) $query ->set( 'tag' , '-19, -27, -56' ); return $query ; } add_filter( 'pre_get_posts' , 'wpb_search_filter' ); |
Excluir términos específicos en una taxonomía personalizada de WordPress Search
Si deseas excluir un término de una taxonomía personalizada de los resultados de búsqueda de WordPress, deberás agregar el siguiente código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function wpb_modify_search_query( $query ) { global $wp_the_query ; if ( $query === $wp_the_query && $query ->is_search() ) { $tax_query = array ( array ( 'taxonomy' => 'genre' , 'field' => 'slug' , 'terms' => 'action' , 'operator' => 'NOT IN' , ) ); $query ->set( 'tax_query' , $tax_query ); } } add_action( 'pre_get_posts' , 'wpb_modify_search_query' ); |
Reemplaza ‘género’ con la taxonomía personalizada y ‘acción’ con el término que deseas excluir.
3. Excluir autor específico de la búsqueda de WordPress
Si deseas excluir las publicaciones creadas por un autor específico del resultado de búsqueda de WordPress, entonces hay dos formas de hacerlo.
Si el autor tiene solo unas pocas publicaciones y estás seguro de que no agregarán más publicaciones, puede usar el primer método de este artículo para excluir sus publicaciones de la búsqueda de WordPress.
Sin embargo, si hay muchas publicaciones escritas por un autor, puedes usar el siguiente código para excluirlas todas de los resultados de búsqueda de WordPress.
1 2 3 4 5 6 | function wpb_search_filter( $query ) { if ( $query ->is_search && !is_admin() ) $query ->set( 'author' , '-24' ); return $query ; } add_filter( 'pre_get_posts' , 'wpb_search_filter' ); |
Reemplaza 24 con la identificación de usuario del autor que deseas excluir.
También puedes usar el mismo código para excluir varios autores agregando sus ID de usuario separados por comas.
1 2 3 4 5 6 | function wpb_search_filter( $query ) { if ( $query ->is_search && !is_admin() ) $query ->set( 'author' , '-24, -12, -19' ); return $query ; } add_filter( 'pre_get_posts' , 'wpb_search_filter' ); |
Reiteramos debes ser muy cuidadoso para implementar estas exclusiones al añadir código.