La paginación no funciona en los resultados de búsqueda

Inicio Foros WordPress Programación La paginación no funciona en los resultados de búsqueda

Este debate contiene 7 respuestas, tiene 3 mensajes y lo actualizó  LGrusin hace 7 años, 3 meses.

  • Autor
    Publicaciones
  • #20569

    pfd
    Participante

    <p>No se lo que he tocado pero ahora la paginación de los resultados de búsqueda no funciona.</p>
    <p>Si hago una búsqueda usando dos o más términos, los resultados son correctos y me da una url del tipo …/?s=present+perfect, sinembargo, cuando paso a la pagina siguiente de los resultados de búsqueda me altera la url y me da una url tipo …/page/2/?s=presentperfect, con lo que al eliminar el signo "+" ya no salen los resultados esperados.</p>
    <p>Dejo el código por si alguien me puede indicar donde está el error:</p>
    <p>


    </p>

  • #50265

    pfd
    Participante

    Vaya, creo que no es un problema de paginación, sino directamente de la caja de búsqueda:

    ¿pero que falta?

  • #50269

    LGrusin
    Miembro

    En value usa <?php the_search_query(); ?>, es decir:

    De esta forma conserva la cadena tal como se introduce en el cuadro de búsqueda.
    wp_specialchars puede que modifique la cadena a buscar. De todas formas esta función es obsoleta.

    Un saludo

  • #50282

    pfd
    Participante

    Hola LGrusin,

    He hecho lo que comentas pero el problema persiste:

    También he intentado con una solución propuesta en [url=http://www.wprecipes.com/how-to-automatically-add-a-search-field-to-your-navigation-menu]WPRecipies[/url] que en principio es completamente diferente y obtengo los mismos resultados. ¿Qué puede estar pasando?

  • #50298

    LGrusin
    Miembro

    Por lo que he podido averiguar la función paginate_links (se encuentra en el archivo wp-includesgeneral-template.php) es la culpable, usa alguna función que limpia la URL y elimina los espacios entre palabras.

    Si estas haciendo pruebas en local ponle un echo a get_query_var y verás que muestra las palabras tal como las tecleas en el cuadro de búsqueda con los espacios.

    <?php echo get_query_var( ‘s’ ); ?>

    O sea, que estamos en las mismas. Por lo que se ve esta función no ha sido pensada para trabajar con dos o más palabras.

    Solución:
    1 – No usar más de una palabra en la búsqueda.
    2 – Hacer alguna chapuza para sustituir los espacios por el signo +

    Seguiré investigando.

    Un saludo

  • #50322

    pfd
    Participante

    He intentado incorporar el código que propones, pero me elimina la barra lateral y el footer. Creo que la responsable es la última función

    puesto que al ponerlo por partes el resto no generaba problemas.

    En cualquier caso, gracias por tu ayuda (una vez más)

  • #50325

    imported_fliberty
    Participante

    Este problema no sólo ocurre con el formulario de búsquedas de wordpress, en mi caso, tengo el mismo problema con el formulario de búsquedas personalizadas de google, ya que al utilizar más de un término de búsquedas, las busca todo junto, generando de esta manera un error en la frase buscada, lo que no ocurre cuando se utiliza sólo un término de búsqueda.

  • #50326

    LGrusin
    Miembro

    Esto no afecta para nada al footer ni al sidebar. Sólo he modificado tu código donde pone:

    por este otro:

    Tu código completo modificado sería:

    Por supuesto usando < ?php the_search_query(); ? > en el formulario de búsqueda como dije antes.

    Un saludo

El foro ‘Programación’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest