Excluir las páginas de los resultados de búsqueda en WordPress

¿Para qué mostrar el contenido de tus páginas en las búsquedas si un usuario lo que quiere es el contenido de tus entradas?

Si quieres evitar esta acción basta con incluir el siguiente script a modod de filtro en tu functions.php:

function Filtro($query) {
    if ($query->is_search) {
        //Elimino los contenidos de las páginas con estas ID para que no busquen en ellas.
        $query->set('post__not_in', array(215,19,5,7,9,11,13,15,17,31,33,35,37,39,67,87,89,108,113,126,121));
    }
    return $query;
}
add_filter('pre_get_posts','Filtro');

La línea que nos interesa es la que declara el array con los IDs de las páginas a excluir de los resultados de búsqueda:

$query->set('post__not_in', array(215,19,5,7,9,11,13,15,17,31,33,35,37,39,67,87,89,108,113,126,121));

Como intuirás, es posible poner menos IDs así como más.

Después hacemos el add_filter correspondiente y nuestro Filtro queda aplicado a los resultados de búsqueda.

Puede mejorarNo está malMe gustaEs bueno¡Excelente! (Ninguna valoración todavía)
Cargando…

3 comentarios en “Excluir las páginas de los resultados de búsqueda en WordPress

  1. Sergio dice:

    Hola,
    Tengo un problema y tal vez tú puedas ayudarme.
    Con WordPress, el tema Customizr, al utilizar el buscador, genera una página de “Resultados de búsqueda” en forma automática en respuesta a lo que haya encontrado. Al no tener control sobre dicha página, el diseño es nativo del tema. Cómo se puede modificar eso?.
    El archivo search.php no existe o no lo encuentro. Lo he buscado por cada carpeta con el Filezilla, además del Editor del tema.
    Viendo tu desarrollo, pensé que tal vez tú puedas ayudarme. Incluso he buscado por si existiese algún plugin que fuese buscador y al mismo tiempo controlase el resultado redireccionándolo a cierta página, la cual active un shortcode, etc.
    Mi nivel es bajo, no soy programador por más que me atreva con ciertas cosas. Pero necesito poder controlar la manera de mostrar los resultados de la búsqueda, el orden, si debajo de cada título pone o no un resúmen de la entrada o página, cantidad de caracteres, si poner o no una viñeta a cada título, el color y tamaño de los títulos y detalles, y un largo etc.
    Ni hablar también de la manera de paginar los resultados.
    Sigo sin entender como una herramienta, que lleva tantos años de desarrollo, no incluya en forma nativa cosas tan simples y de uso cotidiano.
    Te mando un saludo y espero que puedas ayudarme. Gracias.
    Sergio

    1. Darío BF dice:

      Hola, es posible que esa plantilla utilice el index.php para mostrar los resultados de búsqueda.

    2. Darío BF dice:

      Hola Sergio, es posible que tu tema utilice el propio fichero index.php para mostrar los resultados de búsqueda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

DARÍO BALBONTÍN FERNÁNDEZ es el Responsable del tratamiento de los datos personales del usuario y le informa que estos datos serán tratados de conformidad con lo dispuesto en el Reglamento (UE) 2016/679 de 27 de abril de 2016 (GDPR), por lo que se le facilita la siguiente información del tratamiento: Fin del tratamiento: mantener una relación comercial y el envío de comunicaciones sobre nuestros productos y servicios. Criterios de conservación de los datos: se conservarán mientras exista un interés mutuo para mantener el fin del tratamiento y cuando ya no sea necesario para tal fin, se suprimirán con medidas de seguridad adecuadas para garantizar la seudonimización de los datos o la destrucción total de los mismos.Comunicación de los datos: No se comunicarán los datos a terceros, salvo obligación legal. Derechos que asisten al usuario: Derecho a retirar el consentimiento en cualquier momento. Derecho de acceso, rectificación, portabilidad y supresión de sus datos y a la limitación u oposición al su tratamiento. Derecho a presentar una reclamación ante la Autoridad de control (agpd.es) si considera que el tratamiento no se ajusta a la normativa vigente. Datos de contacto para ejercer sus derechos: contacto@dariobf.com.