Non mostrare certe categorie nel widget in wordpress

Vuoi mostrare solo alcune categorie nel widget Categorie nella colonna laterale che ti viene fornito di base da wordpress? Ho trovato un piccolo trucchetto per arrivare a quello che vuoi te!
Al posto di usare il widget classico di wordpress per mostrare le categorie, utilizzerai un brevissimo codice php che fa proprio al caso tuo.
Installa il plugin PHP code widget, che permette di eseguire codice php nei widget. Ora vai su Aspetto > Widget e trascina nella colonna dei widget attivi il widget PHP Code. Inserisci il titolo che preferisci (magari proprio “Categorie”) e poi aggiungi questo codice:

<?php wp_list_categories('style=list&title_li= &exclude=139'); ?>

Il valore 139 è l’ID associato alla categoria che volevo eliminare (orari).
Per scoprire l’ID associato alla categoria che vuoi nascondere leggi trovare ID di una categoria.
Ecco uno screen di come si presenta il widget appena creato:
(Sopra è il widget categoria di wordpress, sotto il mio cat appena creato)

Non mostrare certe categorie nel widget in wordpress
Come puoi vedere, ho eliminato la visualizzazione della categoria Orari, ma lo stile di visualizzazione rimane sempre lo stesso, non si nota che è un widget creato da me.
Se vuoi eliminare più categorie, basta che aggiungi una virgola e poi metti il nuovo ID associato alla categoria.

<?php wp_list_categories('style=list&title_li= &exclude=139,8,89,91'); ?>

E’ molto importante lasciare lo spazio vuoto dopo il title_li= , altrimenti ritorna anche la scritta categories, davvero antiestetica!
Per mostrare le categorie stai utilizzando la funzione  wp_list_categories( ); che ti ritorna appunto la lista di tutte le categorie che sono presenti nel tuo blog. Puoi modificare come visualizzare la lista aggiungendo tra le parentesi altri codici, ad esempio:

  • ‘orderby=VAL’         
    Ordina le categorie in ordine alfabetico, ID, numero di post sempre crescente.
    Al posto di VAL sostituisci name (default), ID,count.
  • order=VAL‘   
    Ordina le categorie in ordine crescente o decrescente.
    Sostituisci VAL con ASC (default), DESC.
  • ‘hide_empty=VAL’
    Nasconde le categorie che non hanno post associati, oppure mostrale.
    Sostituisci VAL con 1 (default), 0.

Per aggiungere più funzioni contemporaneamente, metti il carattere & tra una funzione e l’altra, come nel codice di sopra.
Ecco l’intera lista ufficiale con tutte le spiegazioni e le funzioni possibili, davvero completa.

VUOI CREARE IL TUO SITO O BLOG WORDPRESS?

Scegli uno tra i migliori hosting per WordPress

HOSTING

Scegli uno tra i migliori hosting per WordPress

Hosting

Scegli uno tra i migliori temi WordPress professionali

GRAFICA

Scegli uno tra i migliori temi WordPress professionali

Grafica

Guide e risorse per gestire il sito WordPress a 360°

GESTIONE

Guide e risorse per gestire il sito WordPress a 360°

Gestione
  
con le dita sempre in costante, frenetico movimento sulla tastiera… vengo spesso trascinato e catturato “in rete” per colpa delle mille idee che mi girano per la testa (prima o poi troverò quella giusta)… dal futuro incerto (nonostante una laurea, e chi non lo è?..siamo in tanti!) .. credo fortemente nella condivisione della conoscenza!
24 Commenti
  • Ho installato il widget ma on-line mi visualizza questo:

    “Parse error: syntax error, unexpected ‘=’ in /web/htdocs/www.musicaebatteria.it/home/wp-content/plugins/php-code-widget/execphp.php(44) : eval()’d code on line 1”

    da cosa può dipendere?

    • Ma ti è successo appena installato il plugin senza aver inserito il widget nella barra laterale oppure hai già aggiunto il widget?
      Che versione di wp utilizzi?

      Alla linea 1 del file che produce l’errore leggo: <?php
      Quindi può essere che questo codice sia già aperto quando viene aggiunto il plugin (anche se mi sembra proprio strano) e quindi causa un errore.
      Se proprio non riesci a trovare una soluzione in rete, fai tutti i backup possibili (copia la cartella del plugin via ftp), poi elimina la prima riga… e vedi che succede… se nascono problemi carica i file di backup e ritona tutto come prima… Se così non dovesse andare, questo week end ti cerco una soluzione

      • In pratica l’istallazione riesce con successo.
        Quando provo a mettere il codice:

        nel widget, sostituendo l’ ID 139 dell’esempio con quello della mia categoria e salvo, mi restituisce quell’errore.
        Avevo già istallato un plugin per le categorie “Category Order”, il quale mi permettere di ordinarle in vari modi l’elenco.
        Nonostanta abbia provato a disattivarlo prima di attivare il tuo favoloso widget, per evitare conflitti, non è campbiato nulla. Continua a restituire lo stesso errore.
        Prima di procedere col backup, volevo chiederti se poteva interferire “Category order” ed eventualmente posso provare ad eliminarlo proprio.
        Inoltre ho provato a portare il widget vuoto, o semplicemente con del testo, nella sidebar e funziona correttamente come widget di testo. Evidentemente l’errore è solo nel codice php.

        • ok, allora da quello che mi hai detto l’errore non è nel plugin, in quanto funziona senza mettere il codice. Se il plugin “Category Order” è disattivato, non c’è problema, non viene eseguito il suo codice.

          Prova, ho paura che quando scrivo il codice nella pagina, gli apici e le virgolette mi vengono modificati in caratteri simili! Prova a sostituire gli apici tramite la tastiera e dimmi se esce… perchè se il problema è mio mi sparo 😉

          Per un’ulteriore prova, usa questo codice per vedere che succede:

          Se ti da errore anche con questo codice, vuol dire che è un bel problema.

        • La versione di WordPress è la 2.9.2

          • Erano gli apici.
            Graaaaande widget!
            Ottimo anche perché escludendo una categoria pare che escluda anche le sottocategorie.
            Non ho provato ma:
            Si possono creare quindi più widget categoria personalizzandoli per argomenti quindi?
            Mi sembra che la personalizzazione dei menu in wordpress fosse un limite fino ad ora ma, se funziona con questo widget è veramente un passo in avanti…
            Grazie Roberto!

          • Si possono creare quindi più widget categoria personalizzandoli per argomenti quindi?

            Direi di sì, ne puoi inserire quanti ne vuoi e apportare le opportune pesronalizzazioni!

            Prego, ma mi dispiace di averti fatto perdere tempo per un errore mio (o meglio di wp)

  • Ciao Roberto,

    Innanzitutto bella guida!
    Ma se uno ha la necessita di “nascondere” una categoria, perchè non cancellarla definitivamente? Questa è la domanda che mi sono posto subito… magari non ha senso… ma vorrei sapere cosa ne pensi tu al riguardo.

    • Ciao K-Bon,
      beh, nel mio caso ho un articolo PINCO PALLINO che non voglio mostrare nella home page e nel popular posts, e gli articoli devono essere associati ad almeno una categoria (se non selezioni una categoria, essi vengono collegati alla categoria di default), ma come fare? Basta non mostrare gli articoli della categoria associata all’articolo PINCO PALLINO. Semplice no? NO 🙂 Qui nasce il problema, se l’articolo appartenesse alla categoria di default, tutti gli articoli associati a questa categoria non verrebbero visualizzati… non è quello che voglio!
      Per cui basta creare una categoria “invisibile” a cui associare gli articoli che non voglio mostrare nella home page e nel popular posts, solitamente che non sono attinenti al blog, e poi escludere dalla visualizzazione questa categoria… et voilà! Ecco spiegato l’arcano 🙂

      • Uhhhhh, non ci sarei mai arrivato! Wow, sei fenomenale! 😉

  • questo è un dispositivo molto buona. grazie per la condivisione.

  • Ciao roberto,

    Grazie per la utilissima guida…ti volevo chiedere una cosa…

    Ora ho creato la categoria che mi interessava ma a differenza dalle altre “a tendina”, questa mi si presenta estesa… hai qualche consiglio da darmi per farla diventare “a tendina” anche lei?

    grazie

    • Grazie,
      il codice che trovi nel post mostra già le categorie sottoforma di lista, controlla di aver messo style=list

  • Grazie mille Roberto,

    era quello che cercavo per il blog che sto costruendo. Solo una cosa…. come mai mi compare, accanto ad una delle categorie un piccolo puntino/pallino nero???

    • perchè è un elenco puntato e il tuo tema prevede per l’elenco puntato il pallino. Se lo vuoi togliere, dovresti provare ad inserire il codice dentro un contenitore (div) e poi dirgli di non mostrare il puntino, qualcosa tipo questo codice:

      div style="list-style: none outside none;">
      codice del post
      /div>

      aggiungi prima del div e del /div un <, e poi prova a vedere, magari funziona

      • Sì, sì, so che è un elenco puntato e infatti c’è il punto a tutte le categorie ma la cosa strana è che per una di esse c’è un secondo punto, a fianco, più grande degli altri. Cioè tutte le categorie hanno un punto (perchè fanno parte di un elenco), una categoria ne ha due, uno più grande dell’altro, fianco a fianco….mah!!!! :

        • Magari è una sottocategoria, oppure è impazzito WordPress 🙂

          • Certo che è strano. Boh!!! 🙁

  • Roberto,

    si può fare la stessa cosa anche con gli articoli/post? Ossia mostrare solo alcuni artcoli nel widget articoli recenti? Se sì, come?
    Grazie

    • Puoi provare con WP Hide Post, io uso Simply Exclude ed assegno al post una categoria che puoi chiamare “invisibile”, poi dici di non mostrare tutti i post appartenenti a questa categoria. Oppure Puoi utilizzare WordPress Recent Posts per mostrare i post recenti nella sidebar, e adottare la stessa tecnica delle categorie…

      • Ok, grazie Roberto. Nel frattempo avevo trovato anche il seguente plugin: Advanced Category Excluder. 🙂

        • Ti ringrazio per la segnalazione

  • Ciao Roberto, io sto cercando di fare qualcosa di simile (e se possibile, senza plugin di mezzo), cioè mostrare solo alcune categorie, in base al numero di post che le compone. Ad esempio, mostrare in sidebar solo categorie che contengano almeno “x” post, ma sono davvero perso… ho trovato qualcosa cercando in rete, ma perlopiù articoli vecchi e a volte un po’ troppo tecnici per le mie competenze. Hai qualche dritta? E dal momento che ci stiamo avvicinando… felice 2013 a te e a tutti i tuoi lettori! 🙂

    • Roberto Iacono

      Ciao,
      ti rimando a questo articolo che fa al caso tuo (con opportune modifiche): wpbeginner.com/wp-tutorials/how-to-display-a-category-only-if-it-has-posts-in-wordpress/
      Per mostrarlo nella sidebar, devi usare il plugin che permette di inserire il codice php nella sidebar (PHP widget)

      Ciao e Auguri pure a te!
      Roberto