WordPress: publicar publicaciones sin comentarios

Tengo una página simple que quiero mostrar una lista de publicaciones que aún no se han comentado. ¿Cómo haría esto? Supongo que son algunos parámetros que puedo agregar a query_posts. Gracias.

Desafortunadamente query_posts no le permite limitar la consulta a comment_count=0 . Puedes hacerlo:

 query_posts( 'orderby=comment_count&order=ASC' ); 

Pero eso no solo muestra las publicaciones con cero comentarios, simplemente muestra aquellas con cero comentarios primero .

La solución más complicada (pero mejor) es usar una consulta personalizada que limite específicamente la consulta a las publicaciones con 0 comentarios, pero eso significa que tendrá que crear su propia estructura de bucle (al menos por lo que yo sé )

 global $wpdb; $query = " SELECT * FROM {$wpdb->prefix}posts WHERE {$wpdb->prefix}posts.post_type = 'post' AND {$wpdb->prefix}posts.post_status = 'publish' AND {$wpdb->prefix}posts.comment_count = 0 ORDER BY {$wpdb->prefix}posts.post_date DESC; "; $pageposts = $wpdb->get_results($query, OBJECT); < ?php if ($pageposts): ?> < ?php global $post; ?> < ?php foreach ($pageposts as $post): ?> < ?php setup_postdata($post); ?> 

< ?php the_title(); ?>

< ?php the_time('F jS, Y') ?>
< ?php the_content('Read the rest of this entry »'); ?>
< ?php endforeach; ?> < ?php else : ?>

Not Found

Sorry, but you are looking for something that isn't here.

< ?php include (TEMPLATEPATH . "/searchform.php"); ?> < ?php endif; ?>

¿Eso parece estar dentro de su conocimiento para implementar?

Puede configurar un filtro y consulta varaible para modificar el SQL que consulta las publicaciones. Agregue esto al archivo functions.php su tema

 function filter_comment_count( $sql ){ global $wpdb; $comment_count = get_query_var( 'comment_count' ); if( is_numeric($comment_count) ) $sql .= $wpdb->prepare( " AND {$wpdb->posts}.comment_count = %d ", $comment_count ); return $sql; } 

Luego puede llamar a query_posts( 'comment_count=0' ); (cualquier número), solo querrá agregar el filtro de antemano,

 add_filter( 'posts_where', 'filter_comment_count' ); 

Y después de realizar la llamada, es posible que desee eliminar el filtro también.

 remove_filter( 'posts_where', 'filter_comment_count' ); 

tan simple como :

 query_posts( array ( 'post_type' => 'yourposttype', 'posts_per_page' => 10, 'comment_count' => 0, ) );