13may
5

¿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.

Para saber más:

  • http://www.elcalvario.us/quicuj Enrique

    Gracias, de acuerdo a vuestras instrucciones modifiqué el archivo y funciona al 100%.

  • http://xsilver.co.cc/ x_Silver

    Gracias, siempre me pareció una manera mas usable de mostrar los comentarios

  • http://www.mp3dseo.com Mariano

    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.

  • http://Tusnominas.com Jose

    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!!.

  • http://guardafaro.net guardafaro

    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.