In questa guida vediamo come mostrare una lista degli articoli più commentati; andremo a creare un plugin con uno shortcode, quindi la lista può essere pubblicato in un widget, una pagina o un post.
Se non avete dimestichezza con la creazione dei plugin, potete leggere questo tutorial che spiega come creare un plugin per WordPress
Per prima cosa scriviamo l’intestazione del plugin
1 2 3 4 5 6 7 8 9 |
<?php /** Plugin Name: A2 - WP Most Commented Posts Description: Show most commented posts and the number of comments wherever you want with shortcode [wp_most_commented] Version: 1.0 Author: Alessio Angeloro Author URI: https://alessioangeloro.it License: GPL2 */ |
Ora scriviamo una piccola funzione che richiamerà il file css che conterrà la formattazione della lista
1 2 3 4 5 6 7 |
function wp_most_commented_css() { if( !is_admin() ){ wp_enqueue_style('wp_most_commented_css', WP_PLUGIN_URL . '/wp-most-commented/wp-most-commented.css'); } } add_action('wp_enqueue_scripts','wp_most_commented_css'); |
!is_admin = lo uso per effettuare un controllo in modo che il file css venga caricato solo a frontend, infatti a backend non mi serve ed appensatirebbe il caricamento per nulla
WP_PLUGIN_URL = mi identifica la path di installazione del plugin
Ed ora la funzione che esegue la query con WP_Query
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
function wp_most_commented_posts() { // start output buffering ob_start(); ?> <ul class="most-commented"> <?php // Run WP_Query // change posts_per_page value to limit the number of posts $query = new WP_Query('orderby=comment_count&posts_per_page=5'); //begin loop while ($query->have_posts()) : $query->the_post(); ?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li><span class="wp-comment-count"> <?php comments_popup_link('Nessun commento;', 'Commentato 1 volta', 'Commentato % volte'); ?></br></span><div class="spacer"></div> <?php endwhile; // end loop ?> </ul> <?php // Turn off output buffering $output = ob_get_clean(); //Return output return $output; } |
Io ho deciso di mostrare i 5 post più commentati, ma potete aumentare o diminuirne il numero cambiato il “5” alla riga 9 del codice
Ed infine creiamo lo shortcode da utilizzare in seguito
1 2 |
// Create shortcode add_shortcode('wp_most_commented', 'wp_most_commented_posts'); |
A questo punto il plugin potrebbe già funzionare, ma siccome vogliare dare la possibilità di eseguire il codice anche in un widget di testo, aggiungiamo un piccolo filtro di questo tipo
1 2 |
//Enable shortcode execution in text widgets add_filter('widget_text', 'do_shortcode'); |
Quindi per poter mostrare i post più commentati, è necessario utilizzare dove meglio crediamo il seguente shortcode
1 |
[wp_most_commented] |
Ed ecco il risultato
Programmatore WordPress Esperto WooCommerce
Sono l’autore di questo blog con tanti trucchi e guide su WordPress e WooCommerce.