La búsqueda de WordPress solo funciona con publicaciones, no con páginas

2 minutos de lectura

Estoy trabajando en mi propio tema personalizado de WordPress, usando una plantilla predeterminada en blanco para comenzar. No he editado el archivo search.php.

Muchas de mis publicaciones de WordPress son páginas. Desafortunadamente, la búsqueda del sitio solo recupera publicaciones, no páginas.

¿Alguna idea de cómo hacer que el tema busque tanto publicaciones como páginas?

Aquí está la mayoría de search.php:

<?php if (have_posts()) : ?>

    <h3>Search Results</h3>

    <?php include (TEMPLATEPATH . '/inc/nav.php' ); ?>

    <?php while (have_posts()) : the_post(); ?>

        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">

            <h4><a href="https://stackoverflow.com/questions/5147297/<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>

            <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>

            <div class="entry">
                <?php the_excerpt(); ?>
            </div>

        </div>

    <?php endwhile; ?>

    <?php include (TEMPLATEPATH . '/inc/nav.php' ); ?>

<?php else : ?>

    <h3>No posts found.</h3>

<?php endif; ?>

Agregue este código a su archivo functions.php.

function wpshock_search_filter( $query ) {
    if ( $query->is_search ) {
        $query->set( 'post_type', array('post','page') );
    }
    return $query;
}
add_filter('pre_get_posts','wpshock_search_filter');

http://wpth.net/limit-wordpress-search-results-to-specific-post-types

Búsqueda de WP http://wpsear.ch/ tiene esa capacidad. Puede ajustar los tipos de publicaciones que desea mostrar en la página de resultados.

  • No se puede acceder a la página.

    – mano derecha

    14 de enero de 2017 a las 5:29

En su search.php, busque The Loop e inserte este código justo después. Puedes reconocer el bucle porque generalmente comienza con:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>

Código a insertar:

if (is_search() && ($post->post_type=='page')) continue; 

Entonces, tu código debería ser así:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>
<?php if (is_search() && ($post->post_type=='page')) continue; ?>

Déjame saber si funcionó.

La falta de búsqueda de páginas y resultados de búsqueda clasificados por fecha de publicación en lugar de relevancia es un problema típico de WP. Probar http://wordpress.org/extend/plugins/relevanssi/

¿Ha sido útil esta solución?