• User Attivo

    Widget commenti recenti... personalizzato

    Ho bisogno di far in modo che quando si sta leggendo un articolo (quindi pagina single.php), il widget dei commenti recenti presente in sidebar mostri solamente i commenti di articoli che hanno uno o più tag uguali al post che si sta leggendo.

    Per il momento sono fermo a questo punto:
    [PHP]
    <?php
    $tag = get_the_tags();
    if (is_single() && ($tag)) {

    		$number=5; // numero di commenti
    		$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT $number");
    		?>
    
    	<div class="widget">
    	<p class="widget-title">Commenti Recenti</p>
    	
    	<?php
    		if ( $comments ) : foreach ( (array) $comments as $comment) :
    		echo  '<li class="recentcomments">' . sprintf(__('%1$s su %2$s'), get_comment_author_link(), '<a href="'. get_comment_link($comment->comment_ID) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
    		endforeach; endif;
    	?>
    	</div>
    
    	<?php } ?>
    

    [/PHP]
    Ho creato la condizione che controlla che ci si trovi nella pagina single e che l'articolo abbia dei tag, ed infine la parte che visualizza i commenti. Però non saprei come visualizzare solo i commenti con tag uguali ai tag dell'articolo. Idee?


  • User

    Dovresti modificare la query selezionando gli articoli che ti interessano, oppure scarichi un plugin per i post correlati e gli aggiungi il tuo codice 😉


  • User Attivo

    @MatrixTeo said:

    Dovresti modificare la query selezionando gli articoli che ti interessano, oppure scarichi un plugin per i post correlati e gli aggiungi il tuo codice 😉

    Ho provato un po' di plugin ma nessuno fa quello che cerco, ho fatto anche una ricerca in internet... stranamente sembra che nessuno sia interessato a una modifica del genere.

    Devo riuscire a capire come modificare la query in modo che mostri solo i commenti ad articoli con tag uguali a uno o più tag dell'articolo che si sta leggendo, diciamo che in teoria saprei come fare, però non so come scriverlo in php :mmm:
    [PHP]$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT $number");[/PHP]