Agregar subconsulta al search de wordpress

Inicio Foros WordPress Plugins Agregar subconsulta al search de wordpress

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

  • Autor
    Publicaciones
  • #19088

    avidal
    Participante

    <p>Estimados amigos, tengo un problema :<br />
    yo uso "Campos Personalizados" para mis entradas del wp, pero el buscador (search.php) no busca por campos Personalizados, alquien me puede ayudar para crear una funcion que pueda buscar tambien en la tabla wp_postmeta que es donde se guardan los campos personalizados con sus valores?????? </p>
    <p>Esperando su ayuda me despido…
    </p>

  • #46540

    skozz
    Participante

    Yo uso la siguiente funcion normalmente:

    Donde pone “AQUIELCAMPO” pones el campo que quieres ordenar y añade el order by por meta_value que puedes moficiar al gusto en la query. Esto evidemente lo incluyes en functions.php luego la llamas asi, por ejemplo, en el theme:

  • #46541

    avidal
    Participante

    Hola skooz, pero eso es hacer otra consulta, lo que yo necesito es que al BUSCAR en el WordPress realize la busqueda normal, como viene por defecto ( busca en el wp_post) y tambien busque en wp_postmeta donde se guardan los valores de los Campos Personalizados. OSEA LO QUE NECESITO ES COMO UN FILTRO ADESIVO A LO QUE YA EXISTE.

    que funcione automaticamente al buscar mediante el formulario de busqueda por defecto del wordpress..

  • #46555

    skozz
    Participante

    Pues me remito al ejemplo. El script que puse es un ejemplo de lo que uso normalmente, pero si en lugar de usar el buscador normal te haces una page aparte y le pasas (por ejemplo) la búsqueda por GET con una variable en la query lo puedes hacer. Te lo digo porque yo he usado esa query para hacer búsquedas por precio en otra web, pero obviamente modificandola una poco para eso (con poco que sepas de MySQL y algo de funciones php te sobra para hacerlo).

    Pd: Si lo que quieres es que te pongamos el código al completo solo de copiar y pegar dilo plis pero no te andes con rodeos xDDD

    Saludos.

  • #46680

    avidal
    Participante

    Estas loco, si piensas que quiero el código. :S
    se ve que no tienes idea lo que quiero.
    NECESITO cambiar el QUERY por defecto que tiene el buscador del wordpress, por que es algo estupido. solo busca por LIKE ‘%la palabra a buscar%’, lo que necesito es que la busqueda a parte de buscar tambien en los Campos Personalizados(wp_postmeta.meta_key=’description’ AND wp_postmeta.meta_value LIKE ‘%la%’ OR ‘%palabra%’ OR ‘%buscar%’) como puedes ver la consulta debe ser partida en palabras, y asi aumentar los resultados de las busquedas.
    Tengo la idea de la consulta, tengo la idea de los filtros a utilizar un posts_join y un posts_where.

    MI PROBLEMA ES QUE no se como reemplazar los criterios en el WHERE que por defecto viene en el QUERY que consulta al post_title y al post_content de la tabla wp_posts.

    PD: eres Noob

  • #46682

    davidlluna
    Participante

    Hola avidal, usar esos filtros es sencillo solo tienes me meter la condición is_search() dentro de la función que crees para los filtros, sino te aclaras mete un var_dump y veras como funcionan

    Simplemente cambiando el valor de $where conseguiras lo que quieres ( y otra para Join claro )

    PD: eres Noob

    Eso creo que sobraba, no 🙂

  • #46685

    avidal
    Participante

    AJA, una ayuda aceptable!!! Pero.. ahora como reemplazo todo el query que se genera por defecto?
    alguna expresión regular ?

  • #46686

    davidlluna
    Participante

    si quieres cambiar algo del $where o del $join tendrás que usar una expresión regular dependiendo de lo que quieras hacer, igual simplemente añadiendo te puede funcionar.

    si lo quieres cambiar todo, pues también tienes el filtro posts_request ( lo puedes ver en la línea 2245 de query.php )

  • #46695

    skozz
    Participante

    @avidal cierto, la solución que te propuse no es lo que tu buscabas, pero en tu primer post no lo explicabas “tan bien” como en le post donde te has tomado la molestia de insultarme. Te haz empezado explicando muy mal al principio y no creo que mi tono ni palabras fueran para que adoptes ese tono conmigo.

    Según tu criterio soy un n00b, pero al menos con educación.

    Que tengas un buen día.

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

Pin It on Pinterest