<

Head

Ultima modifica: 6 Ottobre 2025

Il blocco gutenberg head è esclusivo del wordpress Gpci framework e serve a inserire o modificare informazioni nella head della pagina corrente o nel template. E' pensato per inserire più che altro tag meta controllati e dati strutturati nei template ma è possibile inserire anche tag script, style e addirittura crearne di personalizzati. I tag personalizzati possono essere completati con il controllo attributi (probabilmente per aggiungere gli attributi name, property e content). E' importante specificare che se sono specificati 2 tag precompilati uguali l'ultimo sovrascriverà il primo. E' molto importante notare anche che il blocco head semplicemente definisce le globali php inerenti gli headtags, ma i contenuti verranno assegnati dai vari hooks inerenti. E' possibile quindi ottenere gli stessi risultati del blocco impostando le globali secondo i valori corretti.

Controlli del blocco

Questo blocco ha 3 modi di funzionamento:

  • tag controllati: il tag è compilato automaticamente anche negli attributi e noi penseremo solo al contenuto
  • tag personalizzati: nei controlli del blocco definiremo solo tag e contenuto, ma gli attributi dovremo generarli con il controllo generale
  • handle script: è possibile accodare script preregistrati da wordpress oppure personalizzati specificando semplicemente il nome dell'handle e altre informazioni opzionali

Tag

Selezionare il tag precompilato e scrivere il contenuto, gli attributi aggiunti con il controllo generale non verranno aggiunti. Alternativamente selezionare generico e definire tag (apparirà un controllo aggiuntivo subito sotto) e attributi manualmente.

Schema generico

Selezionando schema generico il content, dopo la conversione dinamica, deve essere una stringa e i dati strutturati saranno inseriti direttamente, esempio:

{
  "@context": "https://schema.org",
  "@type": "ContactPage",
  "mainEntity":{
    "@type":"LocalBusiness",
    "@id":"https://www.gigitopcinformatica.it/",
    "name":"Gigitopc informatica"
  }
}

Schema costruttore

Definisce sempre dati strutturati ma in modo automatico tramite interfaccia grafica. Questa modalità permette di usare un solo blocco per template o pagina aggiungendo automaticamente sia proprietà statiche che generate da un ciclo ai dati strutturati. Se i dati strutturati comprendono un ciclo (esempio una lista di servizi, corsi o altro) il blocco va sempre inserito all'interno della query che genera la lista. Il costruttore tenterà in vari contesti di rimuovere i tags html (compresi gli a capo) per evitare json non validi. I sotto controlli del costruttore sono:

Tipo

Tipo di dato strutturato come SoftwareApplication, Service, ecc... E' obbligatorio definirlo altrimenti non sarà aggiunto nulla.

Proprietà

Ripetizione di campi che definiscono le proprietà più esterne. Notare che le proprietà saranno aggiunte solo se non già esistenti, le proprietà @context e @type invece saranno aggiunte automaticamente. Definire:

Proprietà da stringa

Abilitare se proprietà multiple vengono inserite direttamente da una stringa. E' possibile ad esempio utilizzare un campo personalizzato di una pagina impostazioni per aggiungere dati strutturati ed aggiornarli sia per il template di archivio che per il template singolo:

//stringa o campo personalizzato
"proprietà 1":"valore proprietà 1",
"proprietà 2":"valore proprietà 2"

//se i dati sono contenuti in un campo personalizzato saranno sempre processati anche eventuali shortcodes
//(ho aggiunto un'eccezione per questo caso). Esempio:
"applicationSubCategory": "Tema Wordpress multifunzione",
"creator":{[render_data type="mb" data="localbusiness,dati-strutturati,object_type:setting"]}
//ini questo caso creator è il contenuto di un altro campo personalizzato

Attenzione in quanto se la stringa non è perfettamente formattata in json al posto del valore della proprietà (e probabilmente quella adiacente) sarà aggiunto il messaggio di errore.

Nome proprietà

Compare se non è abilitata la proprietà da stringa: inserire il nome della proprietà (come name, description, ecc...). Obbligatorio altrimenti la proprietà non sarà aggiunta (chiaramente se non abilitata la proprietà da stringa).

Valore proprietà

Valore della proprietà (conversione dinamica).

Forza valore

Compare se non è abilitata la proprietà da stringa: è possibile modificare il valore json nei casi (probabilmente rari) in cui potrebbe essere utile o necessario. E' possibile scegliere tra aggiungere/rimuovere apici o aggiungere parentesi quadre/graffe (al posto degli apici).

Notare che le proprietà saranno aggiunte solo se non già esistenti. Le proprietà @context e @type invece saranno aggiunte automaticamente.

Proprietà da query

Definisce le proprietà interne a una lista dinamica come potrebbe essere la costruzione di una lista itemListElement o offers. Specificare la chiave dell'array (esempio itemListElement o offers) altrimenti non verrà creata la lista dinamica e la ripetizione di campi che definiscono le proprietà. In questo caso le proprietà definite andranno ad aggiungere un oggetto all'array contenente le proprietà definite. In questo caso il blocco andrà sempre inserito in una query. I parametri sono gli stessi delle proprietà esterne con aggiunta di:

Sposta in sotto array

In certi casi, per la corretta validazione dei dati strutturati, alcune proprietà devono essere spostate in un sotto array. Inserire in questo campo il nome del sotto array e il costruttore, automaticamente, genererà sia il sotto array che le proprietà al suo interno. Se non serve lasciare semplicemente vuoto il campo. Esempio completo (proprietà da query):

- Inserire il blocco in una query
- Chiave array: itemListElement
- Proprietà 1 - nome: @type, valore(originale): ListItem, sposta in sotto array: vuoto
- Proprietà 2 - nome: position, valore(stringa): [global data="gpci,queries,current,current_post" functions="++"], sposta in sotto array: vuoto
- Proprietà 3 - nome: @type, valore(originale): SoftwareApplication, sposta in sotto array: item
- Proprietà 4 - nome: url, valore(campo wordpress): permalink, sposta in sotto array: item

Il risultato sarà qualcosa come:

{
    "@context": "https://schema.org",
    "@type": "ItemList",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@type": "SoftwareApplication",
                "url": "https://www.gigitopcinformatica.it/gpciframework/versione-tema/1745179767/"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@type": "SoftwareApplication",
                "url": "https://www.gigitopcinformatica.it/gpciframework/versione-tema/1737743302/"
            }
        }
    ]
}

Content

In questa textarea è possibile inserire il contenuto dell'attributo content con conversione dinamica. Questi controlli compaiono solo se il tag non è manuale e se non si sta accodando un handle.

Nascondi il content

Se abilitato nasconde il content nell'editor, è utile nel caso che il content sia troppo lungo o sia calcolato dinamicamente.

Script e handle

Se si seleziona script è possibile accodare un handle preregistrato abilitando il controllo handle. Lo script sarà inserito nel frontend tramite la funzione wp_enqueue_script, mentre nel blocco sarà possibile inserirne i parametri esattamente come nella funzione. E' importante notare che lo script sarà sempre inserito nella head e mai nel footer. Se necessario in futuro verrà creato un blocco apposito per il footer. Per la lista degli handle pregenerati da wordpress leggere la documentazione.

Esempi

Questo blocco non ha un gran bisogno di esempi ma per capirne il funzionamento leggere gli snippet sui dati strutturati e tinymce

Ottenere lo stesso risultato del blocco (tag style) ma impostando semplicemente la globale php:

$GLOBALS['gpci']['headTags']['style'][] = '*{display:none}';