Global è uno shortcode esclusivo del wordpress Gpci framework e serve a mostrare informazioni relative a $GLOBALS php controllate. E' possibile ottenere il valore di 2 tipi di global:
- alcune global del tema padre, ossia quelle per la gestione dei foreach e inerenti il render del blocco corrente
- global di tipo personalizzato, quindi gestite autonomamente dal tema child
Attributi dello shortcode
Gli attributi di questo shortcode sono riferimenti a delle global php: gli accessi alla global gpci sono limitati a poche chiavi, la global custom (inizializzata nel tema padre come array vuoto) invece è libera e delimitata soltanto dagli amministratori.
data
Punto di partenza dell'array $GLOBALS e avanzamenti nelle sotto chiavi separate da una virgola. Va precisato che il valore di uscita se oggetto sarà sempre convertito ad array.
readable
True o false, se il valore deve essere convertito stringa json, molto utile per capire dove si trova il valore che si vuole ottenere. Default:true.
[global data="custom,test" readable="false"]
functions
Questo argomento si comporta esattamente come nello shortcode render_data: serve a manipolare il valore di ritorno subito prima di generarlo. Si inserisce il nome di una o più funzioni separate da una virgola (esempio: wpautop,funzionepersonalizzata), se le funzioni esistono e sono in whitelist (ricordarsi di aggiungerle!) il valore verrà processato da ogni funzione nell'ordine inserito prima di essere generato. Le funzioni devono prendere in ingresso un parametro come il valore in ingresso (probabilmente stringa o numero) e ritornarlo alla fine dopo le modifiche. Se le funzioni non esistono o non sono in whitelist lo shortcode ritornerà con una stringa messaggio di errore relativo (ricordarsi che le funzioni vengono processate una per volta quindi potrebbero esserne ad esempio eseguite 2 e la terza potrebbe generare l'errore). Vedi esempi per maggior chiarezza.
Globali del tema padre
Può essere utile avere una panoramica delle globali del tema padre che possono essere ottenute tramite questo shortcode:
foreach
Contiene tutte le informazioni relative i foreach nella pagina organizzate per id foreach, chiavi e valori.
Esempio:
[global data="gpci,foreach,id,value"]
block
Contiene tutte le informazioni relative il blocco corrente. Utile soprattutto per debugging del blocco e per verificarne gli attributi.
Esempio:
[global data="gpci,render,block"]
instance
Contiene informazioni avanzate come la configurazione del blocco corrente e le variabili di contesto dei blocchi. Utile per ottenere informazioni passate dai blocchi genitori oppure sulla query corrente come il numero di posts trovati ecc...
Esempi:
<!--contenitore instance-->
[global data="gpci,render,instance"]
<!--contenitore delle variabili di contesto blocchi-->
[global data="gpci,render,instance,context"]
<!--id del post corrente-->
[global data="gpci,render,instance,context,postId"]
<!--post type corrente-->
[global data="gpci,render,instance,context,postType"]
<!--informazioni sulla query corrente-->
[global data="gpci,render,instance,context,CurrentQuery"]
<!--indice del post corrente nella query corrente-->
[global data="gpci,render,instance,context,CurrentQuery,current_post"]
query
Contiene le informazioni relative la query corrente.
Esempi:
<!--informazioni sulla query corrente-->
[global data="gpci,query"]
<!--indice del post corrente nella query corrente-->
[global data="gpci,query,current_post"]
Esempi
Utilizziamo la global che inizia per custom. Otteniamo il valore di una funzione personalizzata:
//php
function EsempioShortcodeGlobalsCustom(){
$currentDateTime = new DateTime();
return $currentDateTimeString = $currentDateTime->format('Y-m-d H:i:s');
}
$GLOBALS['custom']['dataeora'] = EsempioShortcodeGlobalsCustom();
Shortcode:
[global start="custom" data="dataeora"]
Risultato
2026-08-12 04:58:34
Otteniamo il nome del blocco corrente utilizzando una globale di render:
Nome blocco: [global data="gpci,render,block,blockName"]
Risultato
- Nome blocco: core/list-item
Otteniamo l'indice del post corrente all'interno di una query e incrementiamolo di 1:
[global data="gpci,query,current_post" functions="++"]
Otteniamo una lista dinamica in base a un campo metabox del post corrente:
- id campo personalizzato - esempio-testo
- tipo campo personalizzato - testo ripetibile
- controllo foreach - selezione campo personalizzato: post corrente; array di ingresso: esempio-testo
- shortcode inserito in una voce elenco(il livello è 0 in quanto il foreach non è nested):
[global data="gpci,foreach,esempio-testo,value"]
Risultato 1
- testo1
- testo2
- testo3
Stessa cosa ma ora visualizziamo le chiavi invece dei valori:
[global data="gpci,foreach,esempio-testo,key"]
Risultato 2
- 0
- 1
- 2
Ora manipoliamo il risultato dei valori con una funzione:
function EsempioManipolaValoreOutput( $content ){
if( $content == 'testo2' ){
$content = str_replace( $search='testo2', $replace='TESTO MANIPOLATO!', $subject=$content );
}
return $content;
}
[global data="gpci,foreach,esempio-testo,value" functions="EsempioManipolaValoreOutput"]
Risultato 3
- testo1
- TESTO MANIPOLATO!
- testo3
Ora otteniamo il valori tra 2 foreach nested: DA FARE
