online store for every kind of maker

Categorie wordpress: un elenco con l’ultimo elemento senza la virgola

Categorie wordpress: un elenco con l’ultimo elemento senza la virgola

Ecco qui un veloce post dopo aver risolto un piccolo dilemma per il sito di Microingranaggi: nel footer volevamo stampare l’elenco delle categorie con almeno un post all’interno in maniera testuale (evitando quindi una lista LI) separando ogni elemento con una semplice virgola: quindi un elenco di categorie wordpress stampate in maniera un po’ inusuale, finalmente liberate da qualsiasi vincolo di formattazione tramite LI.
Ovviamente in questo modo dopo l’ultimo elemento non volevo stampare un’altra virgola: quindi ho introdotto un conteggio delle categorie da stampare per avere il numero totale, e un riconteggio incrementale per arrivare a poter confrontare i due totali.
Appena l’incremento raggiunge il totale il php stampa un output diverso, e oplà il gioco è fatto.
Stampo qui di seguito il codice, è abbastanza commentato quindi si può seguirne il funzionamento riga per riga.

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
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
// proactiva conteggio categorie attive
// e stampa di un elenco dove l'ultimo elemento
// non ha la virgola
 
// settiamo il counter per le categorie attive
$category_counter = 0;
 
// settiamo il counter per il riconteggio
$category_recounter = 0;
 
	// contiamo le categorie attive
	$dacontare=get_categories();
	foreach ($dacontare as $conto) {
		$category_counter++;
	}
	// decommentare la riga seguente, se serve un controllo
	// echo $category_counter . '<br>';
 
 
$args=array(
  'orderby' => 'name',
  'order' => 'ASC'
  );								
 
$categories=get_categories($args);
	foreach($categories as $category) { 
 
		// confrontiamo il primo conteggio con il secondo
		// se siamo arrivati allo stesso numero, stampiamo una riga leggermente diversa
		// in questo caso, senza virgola
		if( $category_recounter == ($category_counter -1) ) {
			echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "tutti i post nella categoria %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> (' . $category->count . ')';
		} else {
		echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "tutti i post nella categoria %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> (' . $category->count . '), '; 
		}
	$category_recounter++;
	} 
?>

Come dicevo prima è un modo di stampare categorie wordpress un po’ inusuale, ma a me personalmente piace la possibilità di avere le categorie wordpress in ciclo totalmente libere da UL e LI: mi piace anche questo particolare della virgola tolta all’ultimo giro.
Questo trucchetto si può applicare a qualsiasi cosa, ad esempio a delle categorie separate da una barra |, oppure da delle >.

A presto!

0 Commenti

Leave a reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Non c'è bisogno del permesso di nessuno per fare grandi cose. Massimo Banzi