¿No te ha pasado que has ido a leer los comentarios en una entrada de un blog y para ver por donde va la conversación has tenido que hacer scroll varias veces?.
Si no quieres leer las decenas de comentarios anteriores quizás te apetezca cambiar el modo de presentación que de ellos hace WordPress. Pues mira, has tenido suerte porque es realmente sencillo cambiar este comportamiento y hacer que los últimos comentarios se muestren arriba del todo, justo a continuación de la entrada.
Lo único que tienes que hacer es modificar el archivo comment-template.php que está situado en la carpeta «wp-includes» de tu instalación estándar de WordPress.
Si lo revisas, verás el siguiente código:
// TODO: Use API instead of SELECTs. if ( $user_ID) { $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = '$post->ID' AND (comment_approved = '1' OR ( user_id = '$user_ID' AND comment_approved = '0' ) ) ORDER BY comment_date"); } else if ( empty($comment_author) ) { $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = '$post->ID' AND comment_approved = '1' ORDER BY comment_date"); } else { $author_db = $wpdb->escape($comment_author); $email_db = $wpdb->escape($comment_author_email); $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = '$post->ID' AND ( comment_approved = '1' OR ( comment_author = '$author_db' AND comment_author_email = '$email_db' AND comment_approved = '0' ) ) ORDER BY comment_date"); }
Y tengo buenas noticias para ti porque solo vas a tener que añadir una palabra de 4 letras, DESC:
// TODO: Use API instead of SELECTs. if ( empty($comment_author) ) { $comments = $wpdb->get_results(”SELECT * FROM $wpdb->comments WHERE comment_post_ID = ‘$post->ID’ AND comment_approved = ‘1′ ORDER BY comment_date DESC“); } else { $author_db = $wpdb->escape($comment_author); $email_db = $wpdb->escape($comment_author_email); $comments = $wpdb->get_results(”SELECT * FROM $wpdb->comments WHERE comment_post_ID = ‘$post->ID’ AND ( comment_approved = ‘1′ OR ( comment_author = ‘$author_db’ AND comment_author_email = ‘$email_db’ AND comment_approved = ‘0′ ) ) ORDER BY comment_date DESC“); }
Ya está, guardas el archivo y lo has conseguido.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Gracias, de acuerdo a vuestras instrucciones modifiqué el archivo y funciona al 100%.
Gracias, siempre me pareció una manera mas usable de mostrar los comentarios
Ya me acostumbre a usarlos de la manera clásica y creo que me costaría mucho adaptarme.
Cuestión de gustos, pero el cambio es tan sencillo que vale la pena una prueba.
Saludos amigo.
Hola Fernando,
muy útil, ¿pero para cambiar también la numeración del comentario?. Es decir, si hay 2 comentarios, el más reciente sale primero con tu recomendación, y eso es genial, pero sale con la numeración 1, mientras que el más antiguo sale con la numeración 2, y eso puede generar confusiones; si hay 20 comentarios, por muy reciente que sea el post, sigue siendo el número 20 de entrada en el blog!.
Gracias!!.
Si, funciona bien, invirtiendo el orden. El más reciente quedará arriba. El problema es, como dice Jose, cuando tienes activado un sistema de conteo de comentarios. Recién lo acabo de verificar. ¿Hay alguna solución para invertir el conteo? En caso contrario no merece la pena invertir el orden de los comentarios porque resulta confuso, sobre todo cuando dentro de los propios comentarios se han hecho referencia a esos números.