SokoLBY
ayúdenme a crear parámetros de consulta para buscar por título y meta, ejemplo:
artículo:
1 – compañía de títuloscontenido: asdf, meta_field_vendor: asd
2 – título: borrador, contenido: empresameta_field_vendor: asd
3 – título: ttcmp, contenido: asdf, meta_field_vendor: asd
4 – título: myrus, contenido: asdf, meta_field_vendor: empresa
mi cadena de búsqueda ?s=empresa
Quiero que el resultado de la búsqueda sea artículos: 1,2,4
Este qyuery arg
$args['wp_query'] = array(
'post_type' => $post_type,
'posts_per_page' => 5,
's' => $search_s,
);
resultado 1 y 2
Este qyuery arg
$args['wp_query'] = array(
'post_type' => $post_type,
'posts_per_page' => 5,
'meta_query' => array (
array(
'key' => '_item_prop_title',
'value' => $search_s,
'compare' => 'EXISTS'
)
)
);
resultado 4
¿Cómo puedo hacer una consulta para el resultado 1,3,4?
$args['wp_query'] = array(
'post_type' => $post_type,
'posts_per_page' => 5,
's' => $search_s,
'meta_query' => array (
array(
'key' => '_item_prop_title',
'value' => $search_s,
'compare' => 'EXISTS'
)
)
);
¡Salud!
lo que podrías hacer por tu problema es un proceso dual de búsqueda, si no es una respuesta óptima pero si funciona…
$search_s="mykeyword";
$q1 = get_posts(array(
'post_type' => 'post',
's' => $search_s
));
$q2 = get_posts(array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'my_meta_box',
'value' => $search_s,
'compare' => 'LIKE'
)
)
));
$merged = array_merge( $q1, $q2 );
$post_ids = array();
foreach( $merged as $item ) {
$post_ids[] = $item->ID;
}
$unique = array_unique($post_ids);
$posts = get_posts(array(
'post_type' => 'post',
'post__in' => $unique,
'post_status' => 'publish',
'posts_per_page' => -1
));
if( $posts ) : foreach( $posts as $post ) :
setup_postdata($post);
the_title();
endforeach;
endif;
-
Seguí tu sugerencia y funciona. Muchísimas gracias.
– SokoLBY
8 de abril de 2015 a las 6:35
¿Has probado algo como?:
$args['wp_query'] = array(
'post_type' => $post_type,
'posts_per_page' => 5,
's' => $search_s,
'meta_query' => array(
array(
'key' => '_item_prop_title',// Name of the key you want to search. Check your BD to be sure this is the correct name
'value' => $search_s,
'compare' => 'LIKE',// You can use '=' instead if you want to be more restrictive.
),
),
);
-
Esto significaría un “Y” entre los dos: solo devolvería publicaciones con
$search_s
en el título Y en la clave meta, desafortunadamente–Erenor Paz
2 de mayo de 2018 a las 12:53