<

Globals

Globals è 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, esempio quelle per la gestione dei foreach (per ora l'unica)
  • 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. E' molto importante specificare che, per il momento, se lo shortcode si trova in un template e non viene generato, al posto di:

[globals data="..."]

verrà utilizzato:

[globalstemplate data="..."]

start

punto di partenza dell'array $GLOBALS, i valori possibili sono:

  • gpci - predefinito - per le globals controllate dal tema padre
  • custom - per le globals controllate dal tema child

data

avanzamenti nelle chiavi dell'array separate da una virgola. Il formato dei valori di base è: foreach,id,key/value,eventuali chiavi o valori contenuti.

Va precisato che il valore di uscita sarà sempre convertito se necessario (ad esempio se è un oggetto viene convertito ad array) e, se il valore di uscita è un array, verrà visualizzata la sua struttura per poter avanzare facilmente tra le sue chiavi (molto utile per capire dove si trova il valore che si vuole ottenere).

index (uso interno)

generato automaticamente se lo shortcode si trova in un template.

currentkey (uso interno)

generato automaticamente se lo shortcode si trova in un template.

currentvalue (uso interno)

generato automaticamente se lo shortcode si trova in un template.

Esempi

Esempio 1

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:

[globals start="custom" data="dataeora"]

Risultato

2024-07-13 08:41:31

Esempio 2

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):
[globals data="foreach,esempio-testo,value"]

Risultato 1

  • testo1
  • testo2
  • testo3

Stessa cosa ma ora visualizziamo le chiavi invece dei valori:

[globals data="foreach,esempio-testo,key"]

Risultato 2

  • 0
  • 1
  • 2

Esempio 3

Ora otteniamo il valori tra 2 foreach nested: DA FARE