I campi personalizzati di WordPress permettono di separare i dati delle schede servizi e progetti dall’impaginazione. Puoi gestire settore, materiali, documenti e servizi collegati senza ricostruire ogni pagina.
Per un sito aziendale consiglio di partire dalla struttura dei contenuti, scegliendo solo dopo tra funzioni native, Advanced Custom Fields e codice dedicato. Il primo passo è distinguere ciò che racconti liberamente dalle informazioni che devono mantenere una forma coerente.
Organizzare servizi e progetti prima di aggiungere campi
Separare contenuti, classificazioni e dati
Secondo il Codex WordPress, i campi personalizzati contengono informazioni supplementari chiamate meta-dati (meta-donnée in francese). Ogni valore è associato a un elemento attraverso una chiave, per esempio settore_cliente.
Il titolo identifica la scheda, mentre il contenuto principale descrive il lavoro. I campi conservano informazioni specifiche; le tassonomie raggruppano elementi, per esempio i progetti per settore con tassonomie personalizzate.
Nella creazione di un sito web aziendale, distinguo tre esigenze: scrivere una descrizione, conservare dati e organizzare archivi. La scelta dei custom post type in WordPress riguarda invece la creazione di sezioni autonome, come “Progetti”.
Definire uno schema riutilizzabile
Per progettare schede coerenti, parto dalle informazioni necessarie al lettore e da chi dovrà aggiornarle.
Questa struttura distingue i dati delle due tipologie di scheda.
| Scheda | Informazioni | Strumento adatto |
|---|---|---|
| Service | Descrizione e vantaggi | Contenuto principale |
| Service | Documento informativo | Campo file |
| Progetto | Anno di completamento | Campo numerico |
| Progetto | Settore del cliente | Tassonomia |
| Progetto | Servizi collegati | Campo relazione |
Una classificazione condivisa, come il settore, spesso funziona meglio come tassonomia che come testo libero.

Campi personalizzati di WordPress: nativi, ACF o codice
Quando bastano le funzioni native
WordPress dispone già di un sistema di metadati. update_post_meta() salva un valore associato a un contenuto, mentre get_post_meta() lo recupera. Non serve quindi un plugin per conservare dati aggiuntivi.
L’interfaccia nativa è essenziale. Per chi aggiorna siti web per PMI, selettori, istruzioni e controlli sui valori aiutano a ridurre gli errori.
Scelgo il codice dedicato quando servono regole particolari o integrazioni, spesso con il supporto degli sviluppatori. Di norma, un plugin personalizzato registra i dati, mentre il tema ne gestisce la presentazione.
Cosa aggiungono ACF e ACF PRO
Advanced Custom Fields offre un’interfaccia per gestire dati strutturati, come spiega la guida ai campi ACF. I campi personalizzati avanzati sono utili quando una scheda richiede dati articolati, come elenchi di elementi ripetibili o contenuti organizzati in più sezioni. Il plugin include oltre 30 tipi di campi e beneficia di più di dieci anni di contributi della comunità.
Secondo SearchWP, ACF è installato su oltre un milione di siti. Permette anche di registrare post type e tassonomie dall’interfaccia, senza scrivere codice.
ACF PRO aggiunge il campo ripetitore, la galleria, il clone, il contenuto flessibile, la pagina delle opzioni e i blocchi ACF per Gutenberg. La versione gratuita può bastare per schede semplici; scelgo PRO quando queste funzioni rispondono a un’esigenza concreta.
Se utilizzi già Meta Box, valuta le sue possibilità prima di introdurre un secondo sistema.
Configurare ACF per le schede aziendali
Per organizzare servizi e progetti seguo una sequenza che separa configurazione, compilazione e visualizzazione.
- Definisci il contenuto interessato: pagina esistente oppure post type “Servizi” o “Progetti”.
- Crea un gruppo di campi in ACF, con etichette comprensibili e nomi tecnici stabili.
- Imposta le regole di posizione per mostrare il gruppo soltanto nelle schede pertinenti.
- Compila una scheda completa e collega i valori al modello pubblico.
ACF permette di associare campi ad articoli, pagine, utenti, termini delle tassonomie, media e commenti. Le pagine delle opzioni richiedono la relativa funzione PRO.
Per gli utenti puoi gestire una qualifica professionale; sui termini, un’immagine di categoria; sui media, informazioni aggiuntive sull’asset. Ogni dato deve però avere una destinazione precisa.
Per i nomi tecnici preferisco chiavi come anno_progetto e documento_servizio. Cambiarle dopo la compilazione può lasciare valori associati alle vecchie chiavi.
Un campo ripetitore ha senso per una sequenza di elementi, come le fasi del progetto. Per collegare servizi già pubblicati, invece, un campo relazione evita di riscriverne titoli e descrizioni.
Mostrare i dati e renderli ricercabili
Collegare i valori al modello della scheda
Salvare un campo non significa mostrarlo nella pagina. Nel template PHP, get_post_meta(get_the_ID(), 'anno_progetto', true) recupera il valore; esc_html() lo rende adatto all’output come testo.
Con ACF puoi usare get_field(), che applica la formattazione prevista per il tipo di campo. Il modello deve comunque gestire valori vuoti e usare l’escape appropriato: esc_url() per un collegamento, per esempio.
Un campo salvato nel database non compare automaticamente nella scheda e non diventa automaticamente un dato strutturato per Google.
Anche con Elementor, il collegamento dinamico dipende dalle funzioni disponibili nella configurazione del progetto.
Distinguere ricerca interna, filtri e SEO
SearchWP considera i campi personalizzati insieme a titolo e contenuto. Nella configurazione del motore di ricerca puoi includere campi personalizzati selezionati e assegnare loro un peso.
Per i ripetitori ACF, SearchWP raggruppa i sotto-campi come un singolo attributo del motore. Indicizzerei dati utili alla ricerca, escludendo note interne e informazioni riservate.
I filtri sono un’altra funzione: la documentazione dell’integrazione FacetWP con ACF descrive l’uso dei campi come sorgente delle faccette.
Per la SEO tecnica di WordPress conta anche ciò che il modello pubblica. La ricerca interna non garantisce un miglior posizionamento del sito web.
WooCommerce: distinguere prodotto, checkout e ordine
Un campo prodotto, come «Materiale» in un campo testo semplice, descrive l’articolo; un campo checkout raccoglie informazioni per l’acquisto. I dati dell’ordine richiedono invece una gestione distinta.
Prima di aggiungere codice, considero le informazioni già previste dal catalogo. La guida ACF ai campi prodotto illustra l’alternativa basata sul plugin.
Nei tutorial storici, woocommerce_product_options_grouping crea il campo, mentre woocommerce_process_product_meta ne salva il valore. Nell’esempio seguente uso woocommerce_product_options_general_product_data per inserirlo nell’editor classico.
PHP 5.6.25, PHP 7 consigliato, MySQL 5.6.33, WordPress 4.7 e WooCommerce 3.9 sono requisiti di un tutorial datato, non indicazioni per nuove installazioni.

Esempio completo per un campo prodotto semplice
Questo plugin aggiunge “Materiale” ai prodotti semplici. Usa is_admin() per separare gli hook amministrativi da quello pubblico. La costante mantiene unico il nome del campo, secondo il principio Don’t repeat yourself.
<?php
/**
* Plugin Name: AF Materiale prodotto
*/
defined('ABSPATH') || exit;
final class AF_Materiale {
private const KEY = '_af_materiale';
public function __construct() {
if (is_admin()) {
add_action(
'woocommerce_product_options_general_product_data',
[$this, 'campo']
);
add_action(
'woocommerce_process_product_meta',
[$this, 'salva']
);
} else {
add_action(
'woocommerce_product_thumbnails',
[$this, 'mostra']
);
}
}
public function campo() {
woocommerce_wp_text_input([
'id' => self::KEY,
'label' => 'Materiale',
'wrapper_class' => 'show_if_simple',
]);
}
public function salva($id) {
$nonce = $_POST['woocommerce_meta_nonce'] ?? '';
$valore = $_POST[self::KEY] ?? null;
if (!is_string($nonce) || !is_string($valore)) {
return;
}
if (!wp_verify_nonce(
sanitize_text_field(wp_unslash($nonce)),
'woocommerce_save_data'
) || !current_user_can('edit_post', $id)) {
return;
}
$prodotto = wc_get_product($id);
if (!$prodotto || !$prodotto->is_type('simple')) {
return;
}
update_post_meta(
$id,
self::KEY,
sanitize_text_field(wp_unslash($valore))
);
}
public function mostra() {
global $product;
if (!$product || !$product->is_type('simple')) {
return;
}
$valore = get_post_meta(
$product->get_id(),
self::KEY,
true
);
if ($valore !== '') {
echo '<p>' . esc_html('Materiale: ' . $valore) . '</p>';
}
}
}
new AF_Materiale();
Il codice richiede WooCommerce attivo e il template classico che esegue woocommerce_product_thumbnails. Un modello interamente a blocchi richiede un’integrazione diversa.
Questo esempio riguarda prodotti, non ordini HPOS: per i meta-dati degli ordini uso le API CRUD di WooCommerce, con wc_get_order(), update_meta_data() e save().
Sicurezza, manutenzione e costi della struttura
Proteggere dati e continuità operativa
Prima di modificare la struttura, consiglio un backup completo e una prova in staging. Il nonce controlla la provenienza della richiesta; il controllo delle capacità stabilisce se l’utente può modificare il contenuto.
wp_unslash() rimuove gli slash aggiunti ai dati ricevuti; sanitize_text_field() pulisce il testo. Nessuna di queste funzioni sostituisce i controlli specifici richiesti da email, numeri o URL.
Durante un restyling del sito web, documento chiavi, tipi, dipendenze e destinazioni. Per trasferire dati, esistono procedure di esportazione dei campi ACF, anche con strumenti dedicati.
Valutare complessità e lavoro necessario
Nella manutenzione WordPress considero anche template, query e integrazioni. Per l’ottimizzazione della velocità del sito contano il codice eseguito e i dati caricati, non soltanto il numero di plugin.
Un sito web responsive deve inoltre gestire campi lunghi, documenti ed elementi ripetibili senza compromettere la lettura da smartphone.
Costi e tempi dipendono da obiettivi, contenuti, numero di pagine, funzionalità, integrazioni e condizioni iniziali. Migrare un archivio esistente richiede attività diverse rispetto a configurare poche schede nuove.
Per impostare questa struttura nella realizzazione di siti web professionali, Scopri la realizzazione di siti WordPress.
Frequently Asked Questions
ACF PRO è necessario per le schede servizi?
No. Per testo, numeri, file e relazioni può bastare ACF gratuito. Consiglio PRO quando servono ripetitori, gallerie o altre funzioni esclusive.
I campi personalizzati migliorano automaticamente la SEO?
No. Organizzano i dati, ma contenuti pubblicati, struttura delle pagine e configurazione tecnica restano attività separate.
Una struttura chiara rende le schede gestibili
Per servizi e progetti, consiglio di definire prima dati e responsabilità editoriali. Poi scelgo lo strumento e progetto come mostrare ogni informazione, senza duplicare funzioni esistenti.
Come sviluppatore WordPress freelance con base a Ciampino, nell’area di Roma, lavoro online anche con aziende in tutta Italia. Se devi organizzare o riprogettare le tue schede, Parliamo del tuo progetto web.