Come mostrare i numeri di WordPress

0 Flares 0 Flares ×

Durante lo sviluppo di un tema per WordPress capita sovente di aver bisogno di alcune piccole utili statistiche. Ad esempio il numero totale di post pubblicati. Oppure quante categorie l’autore sta usando. E ancora quanti tag, quanti commenti. Molti propongono come soluzione il ricorso a query. Dobbiamo in qualche modo eseguire il collegamento al database e lanciare un’interrogazione. Esercizio per nulla semplice, ma complicazione del tutto inutile. Perchè non ricorrere a funzioni già preconfezionate?

Un piccolo esempio d’uso delle funzioni sotto proposte lo potete vedere qui a fianco, nella sidebar ed esattamente nella sezione di ricerca.

WordPress mette a disposizione dello sviluppatore il set di funzioni che hanno in comune il prefisso wp_count_. Il set che a noi interessa è allora il seguente:

  • wp_count_posts('posts')
  • wp_count_terms('category')
  • wp_count_terms('post_tag')
  • get_comment_count()

Trovare il numero totale degli articoli

Supponiamo allora di voler mostrare il numero totale degli articoli pubblicati. Per comodità vi consiglio di creare delle piccole funzioni che poi possiamo richiamare liberamente e comodamente in ogni punto dei nostri temi. Il posto migliore dove riunire queste funzioni è il file functions.php. Ricorriamo allora ad un codice simile:

	function get_total_posts() {

		$___posts = wp_count_posts('post');            

		return $___posts->publish;

	}

Commentiamo quel poco che c’è da commentare. Secondo una mia personalissima convenzione amo chiamare tutti gli oggetti che uso in modo indiscriminato anteponendo al loro nome tre caratteri di undescore. Facili da cercare, facili da riconoscere proprio visivamente. La funzione ci restituisce un oggetto dal quale preleviamo il numero di post effettivamente pubblicati, quindi scartando i draft. In realtà il parametro post potrebbe essere anche omesso, in quanto parametro di default, ma per leggibilità io preferisco sempre inserirlo.

Se vogliamo viceversa fare il conteggio degli articoli in bozza allora modifichiamo leggermente il codice:

	function get_total_drafts() {

		$___posts = wp_count_posts('post');            

		return $___posts->draft;

	}

In questo modo è possibile richiamare le due funzioni come segue:

        echo get_total_posts();
        echo get_total_drafts();

Trovare il numero di categorie e il numero di tag

In modo del tutto analogo presentiamo brevemente il codice per recuperare il numero delle categorie e il numero dei tag:

	function get_total_categories() {

		$___cats  = wp_count_terms('category');

		return $___cats;	

	}

	function get_total_tags() {

		$___tags  = wp_count_terms('post_tag');

		return $___tags;		

	}

La chiamata delle due funzioni avviene nel modo canonico. In più vi propongo una semplice funzione che ho scritto per conoscere il numero di articoli pubblicati in una determinata categoria:

	function get_posts_in_category($cat) {

		$___catid = get_cat_id($cat);

		$___catobj = get_category($___catid);

		return $___catobj->category_count;

	}

Da notare che il parametro che passate alla funzione è esattamente il nome della categoria di cui volete conoscere il conteggio degli articoli, senza perciò passare dal recupero dell’ID.

Trovare il numero di commenti

Ultima funzione. Recuperiamo il numero di commenti registrati nel nostro blog:

	function get_total_comments() {

		$___comm  = get_comment_count();                                             

		return $___comm['approved'];

	}

Dall’array possiamo estrarre i seguenti valori:

  • awaiting_moderation per i commenti in attesa di moderazione;
  • spam per il totale dei commenti spam;
  • tot per recuperare il numero totale dei commenti (informazione sulla cui utilità ho qualche dubbio).

Per consultare la documentazione ufficiale vi rimando al seguente link. Suggerimenti per migliorare il codice o per velocizzarlo? Alternative alle funzioni proposte?

0 Flares Twitter 0 Facebook 0 Google+ 0 LinkedIn 0 Buffer 0 Email -- 0 Flares ×

3 Comments Come mostrare i numeri di WordPress

    1. kiko

      Ciao, è molto facile:

      $users = count_users(); echo "Utenti: " . $users['total_users'];

      Buon uso!

      Reply

Lascia il tuo commento

Tranquillo: la tua email non verrà pubblicata.

Puoi usare i seguenti tag HTML e attributi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>