Mostrar sólo posts o páginas en los resultados de búsqueda de WordPress

Al realizar una búsqueda en nuestro blog, WordPress muestra por defecto tanto los posts como las páginas, pero hay veces que nos interesa mostrar sólo los posts o las páginas. Para conseguir esto hay varias formas, aunque la más efectiva para mostrar sólo las entradas, porque no causa problemas con la paginación, es la que os muestro a continuación. Un truco de lo más interesante para mejorar la navegación en nuestro blog.

Debemos añadir el siguiente código en functions.php, justo antes del fin del archivo, señalizado por ?>.


//Buscar sólo posts o entradas
function buscador_mostrar_solo_posts($query)
{
if ($query->is_search)
{
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts', 'buscador_mostrar_solo_posts');

Con este código le decimos a WordPress que cuando haga una búsqueda, sólo nos interesa que busque entre los posts, que será lo que muestra.

Si queremos que WordPress sólo muestre las páginas al hacer una búsqueda, habría que hacer una pequeña modificación al código, cambiando ‘post’ por ‘pages’, quedando como sigue:


//Buscar sólo páginas
function buscador_mostrar_solo_pages($query)
{
if ($query->is_search)
{
$query->set('post_type', 'page');
}
return $query;
}
add_filter('pre_get_posts', 'buscador_mostrar_solo_pages');

Como puedes ver un truco de lo más sencillo, que utilizo en RockWordpress para mostrar solo los posts en los resultados de búsqueda.

Mal ejemplo de como hacer algo parecido

Buscando en internet he visto una solución que lo único que hace es ocultar las páginas o posts en los resultados de búsqueda, dando problemas en la paginación. Si por ejemplo en una búsqueda obtenemos 10 entradas y 3 páginas, y sólo queremos ver las entradas, tendríamos 2 páginas de resultados, aunque sin llegar a completarla con los 10 elementos que se muestran por defecto. Con el código de arriba esto no pasa, ya que fuerza a WordPress a buscar sólo en las entradas.

Código en search.php que no hay que usar:

while ( have_posts() )
{
the_post();
if(get_post_type() != 'page')
{
get_template_part( 'content', get_post_format() );
}
}

Para cualquier duda en la implementación, deja un comentario.

8 pensamientos en “Mostrar sólo posts o páginas en los resultados de búsqueda de WordPress

    1. machbel

      Hola, parece que tienes algún plugin que añade los comentarios de Facebook, y no lo pone bien del todo. Mira de modificar las hojas de estilo, de quitar el plugin o buscar otro. Si necesitas ayuda escribeme un email a victor@machbel.com para presupuesto

  1. Juan Felipe

    Mis saludos victor. necesito realizar busqueda tanto entradas como paginas, pero tengo paginas que solo tienen imagenes. El resultado de la busqueda de las paginas me pone el titulo y en la descripcion me pone el codigo fuente de la imagen: necesitaría en la busqueda rechazar ciertas páginas..?

    [caption id="attachment_173" align="aligncenter" width="235" class="wp-image-173 size-thumbnail"] Eventos[/caption]

    no quiero que el usurio vea esto.

    gracias.

    1. machbel

      Si habría que ajustar la búsqueda para que sólo muestre artículos, y esos artículos que sólo tienen foto quitarlos de alguna manera: por categoría, tag, o cualquier otra forma. Si necesitas ayuda, enviame un email.
      Un saludo

  2. Animemegax.com

    Hola amigo tengo una consulta como le puedo definir una imagen a la página principal de mi web en wordpress ya que cada vez que la comparto en Facebook no me muestra la miniatura pero en las otras páginas que ice tengo la opción de asignar imagen destacada y así me muestra la miniatura pero quiero hacer lo mismo en la página principal si me puedes ayudar Gracias

  3. Srmisterio557

    Hola amigo primero gracias por tus aportes bueno tengo una pregunta a ver si me puedes ayudar en las entradas de mi web de wordpress pongo las img de 640×425 esto esta bien pero yo cambie las medidas de la miniatura por 250×333 y la img se ve toda distorsionada y fea me gustaría que se adapte a esas medidas sin perder tanta calidad la img si me puedes ayudar con esto ya que en photoshop lo puedo adaptar bien pero no quiero estar subiendo 2 imágenes para cada cosas para la presentación y la miniatura mucho trabajo así que espero tu respuesta gracias de ante mano aca puedes ver la iamgenes
    http://www.animemegax.com/wp-content/uploads/2015/07/prueba.jpg

Deja un comentario