<

Whitelist

Ultima modifica: 17 Luglio 2026

Nel wordpress Gpci framework è presente in varie zone un sistema di whitelist, serve a permettere a utenti non amministratori di utilizzare funzioni e blocchi gutenberg permessi tramite la conversione dinamica, campi personalizzati, oppure shortcodes.

Funzioni

Le funzioni utilizzabili dagli utenti regolari possono essere aggiunte, rimosse e modificate dagli utenti amministratori, tramite la pagina impostazioni whitelist oppure con php. Per quest'ultimo utilizzo il file options.php è probabilmente il più adatto ma possono essere utilizzati anche hooks oppure il modulo aggiunte di codice. Le funzioni in whitelist sono disponibili nella globale $GLOBALS['gpci']['whitelist']['functions'] che inizialmente sarà un array vuoto, se aggiunte delle funzioni diventerà quindi un array di stringhe contenente i nomi delle funzioni disponibili. Le funzioni invece potranno essere inserite tramite l'opzione funzione in whitelist nella conversione dinamica oppure negli shortcodes che hanno questa possibilità. E' importante notare che i parametri delle funzioni in whitelist non vengono mai specificati dall'utente, inoltre queste funzioni solitamente dovranno ritornare un valore corretto per il contesto d'uso. Esempi:

File options.php

$GLOBALS['gpci']['whitelist']['functions'] = [ 'wpautop' ];

Rende disponibile globalmente la funzione wpautop.

Funzioni inserite nella pagina impostazioni:

get_the_ID
funzionePersonalizzata

Aggiunge globalmente le funzioni get_the_ID e funzionePersonalizzata, quindi in totale avremo in whitelist 3 funzioni globalmente.

Funzioni inserite nel modulo aggiunte di codice (campo php):

$GLOBALS['gpci']['whitelist']['functions'][] = 'get_the_title';

Così avremo una quarta funzione get_the_title disponibile ma solo per la pagina corrente.

E' possibile anche rimuovere una funzione soltanto per una pagina, sempre utilizzando il modulo aggiunte di codice, ad esempio con:

$GLOBALS['gpci']['whitelist']['functions'] = array_diff( $GLOBALS['gpci']['whitelist']['functions'], ['get_the_ID'] );

In questo caso la funzione get_the_ID sarà rimossa solo per la pagina corrente.

Funzioni sempre in whitelist

E' possibile utilizzare alcuni parametri e funzioni che saranno sempre in whitelist senza bisogno di farlo manualmente e saranno valutate prima delle altre:

  • ++: se il valore è numerico lo aumenta di uno
  • --: se il valore è numerico lo diminuisce di uno
  • localize_date: prova ad ottenere il valore di tipo data (come potrebbe essere per campi personalizzati) e lo converte alle impostazioni del sito come da funzione php DateTimeAction(azione ConvertDateFormat)
  • convert_date_to_mysql: prova a convertire il valore di tipo data al formato Y-m-d
  • gettype: ottiene il tipo di dato come da funzione gettype
  • strval: converte il valore a numero intero come da funzione strval
  • intval: converte il valore a numero intero come da funzione intval
  • do_shortcode: processa gli shortcode nel dato (utile per processare shortcodes all'interno dei campi personalizzati) come da funzione do_shortcode
  • JsonAction: converte una stringa json ad array come da funzione JsonAction per poter avanzare tra le sue chiavi e ottenere il valore all'interno degli shortcodes
  • strtotime: converte a timestamp una data in formato inglese come da funzione strtotime
  • var_dump: come da funzione php var_dump
  • print_r: come da funzione php print_r
  • print_rR: come da funzione php del framework print_rR

Risorse collegate:

  • globale php $GLOBALS['gpci']['whitelist']['functions']

Utenti

Come impostazione predefinita i dati utente, come spiegato nella conversione dinamica, sono visibili soltanto agli amministratori e all'utente corrente se è lo stesso dell'id corrente. Impostando la globale $GLOBALS['gpci']['whitelist']['userdata'] su true è possibile non avere questo limite: questo potrebbe essere utile ad esempio nella configurazione di un forum, in cui è utile che tutti vedano chi ha aperto un thread o chi commenta un post. Come sopra è possibile limitare questa impostazione a una pagina o qualsiasi altra combinazione utilizzando php. Per ora non è presente alcuna opzione nella pagina whitelist, se utile verrà aggiunta in futuro.

Risorse collegate:

  • globale php $GLOBALS['gpci']['whitelist']['userdata']

Blocchi

Per utilizzare lo shortcode render_blocks è necessario mettere in whitelist i blocchi utilizzati, Funziona esattamente come sopra ma la globale da utilizzare è $GLOBALS['gpci']['whitelist']['blocks'] che conterrà un array di nomi di blocchi (utilizzare la console sviluppatori in gutenberg per trovare facilmente i nomi). Per ora non è presente alcuna opzione nella pagina whitelist. Esempio:

File options.php

$GLOBALS['gpci']['whitelist']['blocks'] = [ 'core/image', 'gpci/icon' ];

Risorse collegate:

  • globale php $GLOBALS['gpci']['whitelist']['blocks']

Ajax

E' possibile definire, rimuovere e modificare le azioni ajax tramite la globale php $GLOBALS['gpci']['whitelist']['ajax_public'] sia a livello globale che di pagina singola. Questo potrebbe essere molto utile per esempio a creare pulsanti che eseguono azioni php senza dover creare interi form. Altre informazioni sul sistema ajax.