Intentar crear una búsqueda que no solo busque los valores predeterminados (título, contenido, etc.) sino también un campo personalizado específico.
Mi consulta actual:
$args = array(
'post_type' => 'post',
's' => $query,
'meta_query' => array(
array(
'key' => 'speel',
'value' => $query,
'compare' => 'LIKE'
)
)
);
$search = new WP_Query( $args )
...
Esto devuelve publicaciones que coinciden con la consulta de búsqueda Y la metaconsulta, pero también me gustaría que también devuelva publicaciones donde simplemente coincida con cualquiera de ellas.
¿Algunas ideas?
Respuestas:
He estado buscando durante horas una solución a este problema. La combinación de matrices no es el camino a seguir, especialmente cuando las consultas son complejas y debe poder agregarlas a meta consultas en el futuro. La solución que es simplistamente hermosa es cambiar 's' por una que permita buscar títulos y metacampos.
Uso:
fuente
Se puede reducir una gran cantidad de código utilizando una versión modificada de esta respuesta .
fuente
$result->post_count = count( $result->posts );
porque de lo contrario solo obtenía 1 resultado.He optimizado la respuesta de @Stabir Kira un poco
Ahora puede buscar por (título, contenido, excreto) o (metacampo) o (ambos).
fuente
Según la sugerencia de Nick Perkins , tuve que fusionar dos consultas así:
fuente
Bueno, es una especie de truco, pero funciona. Necesita agregar el filtro posts_clauses. Esta verificación de la función de filtro para cualquiera de las palabras de consulta existe en el campo personalizado "speel" y la consulta restante permanece intacta.
fuente
Tuve el mismo problema, para mi nuevo sitio, acabo de agregar un nuevo "título" meta:
funciones.php
Y luego ... solo agrega algo como eso:
¿Qué opinas sobre esta solución?
fuente
Todas las soluciones anteriores solo devuelven resultados si existe una coincidencia en la metaclave speel. Si tiene resultados en otro lugar pero no en este campo, no obtendrá nada. Nadie quiere eso.
Se necesita una unión izquierda. Lo siguiente creará uno.
fuente
Esta es una gran solución, pero necesita arreglar una cosa. Cuando llama a 'post__in', necesita establecer una matriz de identificadores y $ unique es una matriz de publicaciones.
ejemplo:
fuente
La respuesta de @ satbir-kira funciona muy bien, pero solo buscará a través del meta y el título de la publicación. Si desea buscar a través de meta, título y contenido, aquí está la versión modificada.
Y aquí está su uso:
Reemplace
$get['search']
con su valor de búsquedafuente