Hola!
Consulta, tengo implementado un Buscador con filtros (para mis Páginas) utilizando la clase WP_Query y ahora quisiera poder extender la búsqueda a que también busque en los Comentarios asociados a las Páginas.
Hay alguna forma de extender/ampliar WP_Query para que también consulte en la tabla de los Comentarios??? o cómo agregarle otra tabla a la consulta?
Desde ya muchas gracias.
Saludos!
Contenido solo visible a usuarios registrados
Hola Jorge,
Puedes indicarnos que plugin estás utilizando para añadir esta búsqueda en tu sitio web ten en cuenta que todo depende de qué complemento utilizas. Si es posible indícanos como mayor detalle como lo añades ya que lo que nos comentas de wp-query puede ser algo muy extenso y necesitamos sabes como aplicas la funcionalidad.
Un Saludo
Hola @karen, muchas gracias por la pronta respuesta.
La estoy utilizando directamente (sin plugin).
Defino los argumentos (la variable de búsqueda la recibo por GET).
Luego hago la llamada y proceso (loop).
Aquí un extracto del código:
...
$s_args = array(
'paged' => $paged,
'post_type' => 'page',
'post_status' => 'publish',
'post__in' => $_nodos_area,
'order' => 'ASC',
);'s' => $_name,
$advSearchQuery = new WP_Query( $s_args );
wp_reset_query();
...
if( $advSearchQuery->have_posts() ) :
while( $advSearchQuery->have_posts() ) : $advSearchQuery->the_post();
...
Hola Jorge,
Gracias por darnos mas detalles, en este caso su consulta resulta a un nivel avanzado en el cual no podemos abordar ni generar códigos personalizados, sin embargo, puedo darte mis impresiones al respecto
Puedo sugerir el usar a tu favor la función nativa de WP llamada "get_comments" para asi considerar los comentarios dentro de las paginas al ejecutar la búsqueda
Un ejemplo muy aproximado seria el siguiente
$s_args = array(
'paged' => $paged,
'post_type' => 'page',
'post_status' => 'publish',
'post__in' => $_nodos_area,
'order' => 'ASC',
's' => $_name,
);
$advSearchQuery = new WP_Query($s_args);
// Filtrar también comentarios
$comments = get_comments(array(
'status' => 'approve',
'search' => $_name, // Busca el término dentro de los comentarios
));
$comment_post_ids = wp_list_pluck($comments, 'comment_post_ID'); // Obtiene IDs de los posts asociados a esos comentarios
// Añadir los resultados a la consulta original
$merged_post_ids = array_merge(wp_list_pluck($advSearchQuery->posts, 'ID'), $comment_post_ids);
$merged_post_ids = array_unique($merged_post_ids);
// Crear una nueva consulta con los IDs combinados
if (!empty($merged_post_ids)) {
$final_query_args = array(
'post_type' => 'page',
'post_status' => 'publish',
'post__in' => $merged_post_ids,
'order' => 'ASC',
);
$finalQuery = new WP_Query($final_query_args);
wp_reset_query();
if ($finalQuery->have_posts()) :
while ($finalQuery->have_posts()) : $finalQuery->the_post();
// Tu código para mostrar los resultados
endwhile;
endif;
} else {
echo 'No se encontraron resultados.';
}
Este código no es exactamente la solución, pero es un acercamiento a lo que puede hacerte falta resolver
Si deseas ayuda especializada podemos sugerirte elevar la consulta a nuestros colaboradores que con gusto podrán ver tu caso https://www.webempresa.com/directorio-colaboradores.html
Saludos!