Avisos
Vaciar todo

Consulta extender/ampliar clase WP_Query  

 
JORGE
 JORGE
Usuario eminente

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

Citar
Respondido : 30/12/2024 4:00 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

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

ResponderCitar
Respondido : 30/12/2024 4:32 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

JORGE
 JORGE
Usuario eminente

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();

...

Esto lo tengo funcionado (adjunto imagen).
Lo que requiero ahora es que NO solo me haga la búsqueda en el contenido de las Páginas, si no que también busque en lo Comentarios de estas Páginas.
Según leí WP_Query consulta por defecto solo en wp_post.
 
He revisado la posibilidad de agregar algún parámetro que indicara considerar los comentarios también, pero me parece que no hay.
Luego revisé la posibilidad de agregar/modificar/extender la consulta para que además busque en la tabla de Comentarios, pero no encuentro la forma de hacerlo.
 
ejemplo
Espero esto aclare más mi consulta.
 
Saludos y muchas gracias.
ResponderCitar
Respondido : 30/12/2024 9:00 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

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!

ResponderCitar
Respondido : 30/12/2024 10:35 pm

Cursos Gratuitos WordPress