blogger // writer // student

  • Twitter si veste a nuovo: come cambia la grafica?

    twitterIl social network da 140 caratteri si veste a nuovo. Ma non è solo la grafica a cambiare. Twitter indossa un nuovo abito e propone diverse novità. Via alle pagine aziendali, restyling dei profili, usabilità migliorata. Dal blog ufficiale ecco [...]

  • Elementi e servizi per il lancio memorabile di una startup

    lancio-startupE veniamo al punto caliente della questione: come faccio a lanciare in modo ottimale una startup? Le strategie si sprecano. In rete trovi storie anche molto diverse fra loro. Storie diverse che hanno portato al successo i loro protagonisti. [...]

  • 4 aspetti determinanti delle startup di successo

    verso-il-successoEd eccoci alla seconda puntata di questo articolo dedicato al mondo delle startup, in particolare all’idea di creare una startup. Nella prima puntata ci eravamo occupati dei fattori che determinano il successo di una startup, qui [...]

Web Development

sperimentare nuove opportunità di business // gestione avanzata dei contenuti sul Web // sviluppo di applicazioni in ambiente LAMP

Web Strategist

diffondere il tuo messaggio di business sui social media // trasformare il visitatore in cliente // posizionarsi sui motori di ricerca

Freelance Journalist/Blogger

il contenuto è il tassello dominante di un sito web // pianificare i contenuti // scrivere articoli, news, guide

Home » Tutorial » Come mostrare i numeri di WordPress

Come mostrare i numeri di WordPress

wordpress

Articolo in lingua italiana di 09 ott 2009 Zero Commenti Categorie Tutorial

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?

Tags: ,

Autore

Avatar: adminAmo impegnare il mio tempo alla ricerca di quanto più mi fa divertire: scrivere, programmare, studiare e sperimentare. Perennemente connesso a Internet, non riesco a immaginare la mia vita senza Linux, Mac e informatica.

Kiko - 225 articoli

Invia un commento





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

Ultimo progetto

cpp-portfolio

Contadini per Passione

SEO/SEM, Ufficio Stampa Online, Web Copywriting, Web Development

...portfolio

Socializziamo

Engineered (?) by Francesco 'Kiko' Corsentino