Muy buenas tardes.
Mi objetivo es listar en una parte del theme, los posts sobre los que se ha hecho un comentario recientemente. Quiero hacer una lista de pongamos 10 (la cantidad no es un problema).
El código que uso es este.
Código PHP:
<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_type, comment_ID, comment_post_ID, comment_author, comment_date, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,50) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_type = 'post' ORDER BY comment_date_gmt DESC LIMIT 10";
?>
[...]
<?php
$comments = $wpdb->get_results($sql);
foreach ($comments as $comment) {
$frase = strip_tags($comment->comment_ID);
$tema = strip_tags($comment->comment_post_ID);
$ruta = get_permalink($tema);
$excerpt = get_the_title($tema);
$tiempo = strip_tags($comment->comment_date);
El "problema" es que si se escribe más de un comentario sobre el mismo post, lo refleja lógicamente dos veces en esa lista. Lo que quiero es que solo aparezca una vez cada post, independientemente de los comentarios que haya sobre él, es decir, que no se duplique un tema si ya aparece en esa lista y que se lo salte.
He probado con array_unique() pero no funciona, creo que por el formato en el que se compone el array StdClass Object etc.
Alguien sabe alguna forma sencilla? Quizás cambiando simplemente la consulta se pueda, pero no es mi fuerte y me sería de mucha ayuda un cable.
Muchas gracias de antemano por vuestra ayuda.