
🔖 Come abilitare i tag sulle pagine WordPress
WordPress non supporta i tag sulle pagine in modo nativo, e questa limitazione dà fastidio finché non si capisce perché è stata fatta. Una pagina in WordPress è tecnicamente un custom post type a cui la tassonomia post_tag semplicemente non è associata. Gli sviluppatori del core hanno mantenuto i tag solo per gli articoli, trattando le pagine come contenuti statici.
Ma nella pratica questa limitazione si aggira in cinque minuti. Due metodi: una riga di codice in functions.php o un micro-plugin che puoi attivare e disattivare senza modificare il tema. Qui sotto trovi entrambe le opzioni con la spiegazione di cosa succede esattamente dietro le quinte.
💡 Panoramica rapida:
Registra la tassonomia
post_tagper il post typepageusando la singola funzioneregister_taxonomy_for_object_typeAggiungi il supporto ai tag negli archivi tramite l'hook
pre_get_postscosì che le pagine compaiano nei risultati delle query per tagIl codice funziona per qualsiasi custom post type; basta ripetere la chiamata con il nome del tipo desiderato
Il tutto si impacchetta in un plugin separato in un minuto: file → intestazione plugin → codice → attivazione
Perché usare i tag sulle pagine
I tag non sono solo una nuvola nella sidebar. Sono un asse di navigazione che collega pagine sparse in gruppi tematici più velocemente di categorie o menu.
Le pagine WordPress spesso proliferano: contatti, privacy, termini, landing page di servizi, portfolio, documentazione. Senza tag la connessione tra loro si basa solo su link manuali nel testo. Con i tag, una singola pagina "Spedizioni" finisce automaticamente nel gruppo "logistica" accanto alla pagina "Resi", e i visitatori cliccano il tag per vedere tutto ciò che è correlato.
Per la SEO, i tag sulle pagine forniscono link interni aggiuntivi e riducono la frequenza di rimbalzo: gli utenti non abbandonano il sito dopo la prima pagina ma si immergono in una raccolta tematica. Inoltre i tag entrano nella sitemap, aiutando i motori di ricerca a comprendere meglio la struttura.
Metodo 1: codice in functions.php
La via più diretta è aggiungere uno snippet al file functions.php del tema attivo. Apri wp-content/themes/NOME_DEL_TUO_TEMA/functions.php e incolla il codice prima del ?> di chiusura o in fondo al file:
1 /** 2 * Add tag support to WordPress pages. 3 * Code — in functions.php of child theme or via Code Snippets plugin. 4 */ 5 function sdstudio_add_tags_to_pages() { 6 register_taxonomy_for_object_type( 'post_tag', 'page' ); 7 } 8 add_action( 'init', 'sdstudio_add_tags_to_pages' ); 9 10 /** 11 * Include pages in tag archive queries. 12 * Without this, pages won't appear on /tag/tag-name/ 13 */ 14 function sdstudio_pages_in_tag_archives( $wp_query ) { 15 if ( $wp_query->get( 'tag' ) ) { 16 $wp_query->set( 'post_type', 'any' ); 17 } 18 } 19 add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_archives' );
Ecco cosa succede. La funzione register_taxonomy_for_object_type() collega la tassonomia esistente post_tag al post type page. Questa è una funzione core di WordPress; documentazione su developer.wordpress.org. Non crea una nuova tassonomia ma aggiunge solo la relazione "pagine → tag".
L'hook pre_get_posts modifica la query SQL prima che venga eseguita. Quando WordPress costruisce una pagina archivio tag (/tag/name/), cerca solo articoli di tipo post per impostazione predefinita. La riga $wp_query->set( 'post_type', 'any' ) estende la selezione a tutti i tipi: pagine, articoli, tipi personalizzati.
Dopo aver inserito il codice, vai su una pagina qualsiasi e comparirà un blocco "Tag" nella sidebar proprio come negli articoli normali. Funziona immediatamente; non serve svuotare la cache.
Adattare per custom post type
Se hai custom post type (CPT) come portfolio, testimonianze o prodotti che necessitano anch'essi di tag, aggiungi lo stesso numero di chiamate a register_taxonomy_for_object_type() dentro la tua funzione init:
1 register_taxonomy_for_object_type( 'post_tag', 'portfolio' ); 2 register_taxonomy_for_object_type( 'post_tag', 'testimonials' );
Il nome del CPT è il secondo argomento, lo stesso specificato quando si registra il tipo tramite register_post_type(). Non servono modifiche aggiuntive a pre_get_posts: 'any' include già tutti i tipi registrati.
Metodo 2: un plugin separato
Modificare direttamente functions.php è una soluzione funzionante, ma fragile. Cambi tema e il codice sparisce, portandosi via i tag dalle pagine. Per chi gestisce più siti o cambia spesso tema, è più affidabile spostare lo snippet in un plugin separato.
Crea il file wp-content/plugins/sdstudio-tags-for-pages.php con questo contenuto:
1 <?php 2 /** 3 * Plugin Name: Tags for Pages 4 * Description: Enables post tags on WordPress pages and custom post types 5 * Version: 1.0 6 * Author: SDStudio 7 * License: GPL-2.0+ 8 */ 9 10 // Direct access — forbidden 11 if ( ! defined( 'ABSPATH' ) ) { 12 exit; 13 } 14 15 // Tags → pages 16 function sdstudio_tags_for_pages() { 17 register_taxonomy_for_object_type( 'post_tag', 'page' ); 18 } 19 add_action( 'init', 'sdstudio_tags_for_pages' ); 20 21 // Pages → tag archive 22 function sdstudio_pages_in_tag_queries( $wp_query ) { 23 if ( ! is_admin() && $wp_query->is_main_query() && $wp_query->get( 'tag' ) ) { 24 $wp_query->set( 'post_type', 'any' ); 25 } 26 } 27 add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_queries' );
La differenza rispetto al primo metodo è il controllo ! is_admin() && $wp_query->is_main_query(). Assicura che le query dell'admin non vengano influenzate: pre_get_posts si attiva ovunque, inclusa la lista pagine nella dashboard, e senza questo controllo si possono avere comportamenti inattesi nell'admin durante il filtraggio.
Il file è pronto; vai su Plugin, trova "Tags for Pages" e attivalo. Fine. Quando cambi tema il plugin resta attivo e i tag non spariscono. In multisite il plugin può essere attivato per singolo sito o in rete per l'intera rete.
Metodo 3: plugin già pronti dalla directory
Se non vuoi scrivere codice, soluzioni già pronte da WordPress.org gestiscono il compito. Aggiungono non solo i tag ma anche le categorie per le pagine, più un'interfaccia di gestione.
Add Categories to Pages è un plugin leggero che abilita sia categorie che tag per le pagine con un singolo checkbox. Nessuna impostazione, nessuna pubblicità. Adatto quando serve solo che le cose funzionino senza schermate extra.
Ecco una dimostrazione video su come aggiungere tag alle pagine via codice e via plugin, 4 minuti, tutti i passaggi mostrati in tempo reale:
Punto chiave: i plugin di terze parti portano codice e hook aggiuntivi. Se il tuo sito è già carico di una dozzina di plugin, uno in più è un punto di rottura in più. Il codice dei metodi 1 e 2 pesa pochi byte e non aggiunge query al database oltre a quelle standard.
⁉️🤔 Domande frequenti
Funziona in multisite? Sì, il codice è universale. Puoi attivare il plugin per sito o abilitarlo a livello di rete tramite "Attivazione in rete".
In WordPress multisite il codice funziona in modo identico su tutti i siti della rete. La funzione
register_taxonomy_for_object_type()è legata alla tassonomiapost_tag, che esiste separatamente su ogni sito della rete, quindi i tag non si sovrappongono tra i siti. Per ogni sito figlio, i tag sulle pagine sono abilitati indipendentemente: attiva il plugin su un sito e i tag compaiono solo lì.
Devo aggiornare i permalink dopo aver inserito il codice? No, la struttura degli URL non cambia. I tag sulle pagine non aggiungono nuove regole di riscrittura.
WordPress memorizza la relazione "pagina, tag" nella tabella
wp_term_relationships, la stessa usata per gli articoli. Nessuna regola di riscrittura viene influenzata: l'archivio tag esiste già (/tag/name/), e pre_get_posts include semplicemente le pagine nella sua query. Non serve toccare i permalink; tutto funziona immediatamente dopo aver attivato il codice.
I tag spariscono quando cambio tema? Dipende dal metodo. Il codice nel functions.php del tema li farà sparire. Il codice in un plugin o in Code Snippets li conserverà.
Quando si cambia tema WordPress carica un nuovo
functions.php, quindi lo snippet del vecchio tema smette di essere eseguito e il metabox dei tag sulle pagine scompare. Le relazioni "pagina, tag" nel database però non vengono cancellate. Basta ripristinare il codice (nel nuovo tema o via plugin) e tutti i tag assegnati in precedenza riappaiono nell'admin.
Posso assegnare tag programmaticamente durante l'importazione di pagine? Sì, tramite wp_set_object_terms( $page_id, array( 'tag1', 'tag2' ), 'post_tag' ).
La funzione
wp_set_object_terms()accetta un ID pagina, un array di nomi tag e il nome della tassonomia. Se un tag con quel nome non esiste, WordPress lo creerà automaticamente. Questo è comodo durante la migrazione: uno script cicla tutte le pagine e assegna i tag da un file CSV o da un vecchio CMS. È importante eseguire lo script dopoinit, altrimenti la tassonomia non è ancora registrata.
E la nuvola di tag: le pagine ci appariranno dentro? Sì, il widget standard "Nuvola di tag" raccoglierà i tag dalle pagine senza configurazioni aggiuntive.
Il widget
wp_tag_cloud()raccoglie tutti gli oggetti della tassonomiapost_tagper impostazione predefinita, indipendentemente dal post type. Non appena una pagina ha almeno un tag, entra nella nuvola su un piano di parità con i tag degli articoli. Anche la frequenza è calcolata correttamente: un tag su tre pagine e due articoli produce un peso di "5" e viene visualizzato più grande.
Cosa scegliere: codice o plugin
La scelta specifica dipende dal tuo scenario, non da una "risposta giusta".
Per chi ha un sito singolo e non cambia tema per anni, uno snippet in functions.php è sufficiente: copia, incolla, fatto. Per i freelance con una dozzina di siti cliente, un plugin è più comodo: invia il file zip al cliente o attivalo su un nuovo progetto in pochi secondi. Chi già usa Code Snippets o WPCodeBox può semplicemente aggiungere lo snippet alla propria raccolta; non andrà perso con gli aggiornamenti del tema e non richiede un plugin separato.
Se ti servono più dei tag (categorie, tassonomie personalizzate, filtri avanzati), guarda i plugin già pronti su WordPress.org. Ma per il compito di "abilitare i tag sulle pagine", sette righe di codice sono sufficienti. Tutto il resto è eccessivo.
Poi, imposta la tua struttura di tag: pensa a 5-7 argomenti chiave per le pagine e assegnali. Tra un mese la nuvola di tag mostrerà quali argomenti del sito sono più fortemente connessi.



