<

Pagine impostazioni Gpci

Ultima modifica: 4 Luglio 2026

Il wordpress Gpci framework comprende alcune pagine di impostazioni (metabox settings pages) predefinite in cui sono state raggruppate per genere alcune impostazioni che possono essere utili in tantissimi contesti. Sono tutte inserite all'interno del gruppo di pagine Gpci accessibile nel backend di wordpress (wp-admin). Le pagine di impostazioni di solito sono configurate dagli amministratori e sono accessibili agli utenti con il permesso edit_theme_options attivo (di default solo amministratori). Va detto che le pagine di impostazioni gpci contengono impostazioni opzionali che potenzialmente possono anche non essere configurate: il framework funzionerà ugualmente con le impostazioni base.

Le pagine di impostazioni si dividono in 2 tipi:

  • pagine sempre accessibili - queste pagine sono sempre accessibili e non sono mai disabilitate (a meno che non venga fatto manualmente dall'amministratore)
  • pagine accessibili solo dopo l'attivazione di un modulo - queste pagine sono visibili solo dopo l'attivazione di un modulo e, a volte, dopo l'abilitazione di una certa impostazione

Ora vediamo la lista delle pagine:

Componenti aggiuntivi

In questa pagina è possibile attivare i componenti aggiuntivi del framework, ovviamente è una delle pagine più importanti e sarebbe da visitare il prima possibile. E' divisa in 3 zone:

  • estensioni metabox - sono presenti tutte le estensioni metabox. Alcune sono richieste e non disattivabili, non tutte sono testate da me al momento
  • moduli
  • componenti - componenti semplici esclusivi del framework opzionali (come la sitemap)

Il metodo di inclusione per tutti e 3 i tipi è identico a quello descritto nei moduli. Questo può essere molto utile a forzare un componente/modulo/plugin, o a preattivarli senza neanche passare dalla pagina di impostazioni. E' bene specificare che sebbene possa sembrare tutto un pò complicato in realtà è molto semplice (e opzionale), inoltre il file options.php contiene varie preattivazioni e parti commentate che dovrebbero far capire bene e in modo semplice il sistema.

Icone

In questa pagina è possibile inserire le icone globali, ossia che saranno disponibili in tutte le pagine del sito. Come in tutto il framework le icone saranno solo in formato svg, in quanto è l'unico supportato. Notare che queste icone saranno aggiunte a quelle eventualmente inserite nella cartella icons all'interno del tema child. Le icone possono essere definite in due modi, il risultato sarà lo stesso cambia solo la modalità di inserimento:

Textarea

Copiare tutto il codice svg di un icona da siti come:

Il codice verrà automaticamente sanificato durante l inserimento (ma ricontrollare per sicurezza). Ricordarsi di aggiungere un id all'icona per poterla utilizzare nel contenuto di una pagina.

Esempio

Copiamo l'icona house dal sito font awesome:

  • andiamo al sito: https://fontawesome.com/search
  • clicchiamo sull'icona house (cerchiamola se non appare subito)
  • clicchiamo su svg
  • copiamo il contenuto
  • incolliamolo nella textarea in un punto a piacere, come sopra o sotto un'altra icona (inserire spazi tra le icone per leggerle meglio)
  • inserire l'attributo id="house" all'interno del tag symbol

Il risultato sarà:

<symbol viewbox="0 0 576 512" id="house"> <path d="M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"></path></symbol>

Ora possiamo utilizzare l'icona house in html o in un blocco gutenberg icona. Se usata in html il formato sarà qualcosa come:

<svg style="fill:grey; width:2rem; height:2rem;"><use xlink:href="#house"></use></svg>

Gruppo di campi

Sotto alla textarea c'è un gruppo di campi ripetibile in cui è possibile definire ogni icona. I campi da compilare (tuti obbligatori) sono:

  • id - inserire l'id univoco dell'icona globale - esempio: house
  • viewBox - inserire l'attributo viewBox che si trova nel tag svg - esempio: 0 0 576 512
  • contenuto - inserire il contenuto dell'icona senza il tag svg - esempio:
<path d="M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"></path>

Ora l'icona è utilizzabile.

Modalità manutenzione

In questa pagina è possibile abilitare la modalità manutenzione del sito. Esistono 2 possibili modalità che possono essere abilitate separatamente o contemporaneamente in base al risultato che si vuole ottenere:

Manutenzione hard

Se abilitata questa modalità tutto il sito, esclusa la pagina di login, andrà in modalità manutenzione per gli utenti non registrati. Questa modalità va usata quando vengono eseguite operazioni sul codice che potrebbero generare errori e quindi è necessario escludere i visitatori (per escludere anche gli utenti registrati abilitare anche la manutenzione soft). Questa modalità, appena abilitata, esegue queste operazioni:

  • aggiunge delle regole al file .htaccess per reindirizzare tutti gli utenti non registrati verso una pagina html statica (è possibile configurare la pagina html nell'editor Wysiwyg all'interno di questa metabox, se non configurata verrà mostrato un messaggio predefinito che segnala che il sito è in manutenzione)
  • crea il file maintenance.html all'interno del la cartella principale del tema child che conterrà il contenuto personalizzabile in questa metabox

Questo file verrà servito direttamente dal webserver invece di caricare wordpress quindi inserire soltanto codice html statico. Quando disabilitata la modalità il file maintenance.html sarà cancellato automaticamente e le regole nel file htaccess saranno eliminate.

Manutenzione soft

Se abilitata questa modalità sarà visualizzata la pagina di manutenzione (configurabile nel template maintenance) al posto di una qualsiasi pagina web (esclusa la pagina di login e gli utenti amministratori). Questa modalità va utilizzata quando ci sono delle modifiche a contenuti che non comportano potenziali errori visibili o errori di codice (ad esempio potrebbe essere utilizzata per un sito in costruzione).

La modalità manutenzione semplicemente crea un file .maintenance nella root del tema figlio: il framework, a ogni caricamento pagina nel frontend, controlla se il file è presente per eventualmente reindirizzare verso la pagina di manutenzione. Se per qualsiasi ragione si rimane esclusi dal sito (anche se non dovrebbe essere possibile) cancellare il file .maintenance, sarebbe poi anche meglio ritornare alla pagina impostazioni e disabilitare lo switch.

Pagine singole

Se abilitata questa opzione verrà aggiunto un campo personalizzato alle pagine e post singoli per poterne forzare la modalità manutenzione soft.

Risorse collegate:

Ottimizzazioni e tweaks

Questa pagina comprende alcune opzioni per ottimizzare il framework, risolvere problemi di compatibilità e altre modifiche utili.

Wptexturize

Disabilita globalmente la funzione wptexturize tramite il filtro run_wptexturize in quanto talvolta causa di problemi o conversioni non desiderate.

Risorse collegate:


Capital_p_dangit

Disabilita globalmente la funzione capital_p_dangit.

Risorse collegate:


Archivi autore

Se attivata questa opzione gli archivi autore vengono riabilitati. Leggere altre informazioni sugli archivi autore.


Disabilita gutenberg

Disabilita gutenberg per i post types selezionati.

Risorse collegate:


Disabilita xmlrpc

Impedisce l'accesso al file xmlrpc.php tramite htaccess e rimuove gli elementi collegati dal frontend.

Risorse collegate:


Disabilita feeds

Disabilita tutti i feeds del sito, ritornando una pagina 404 senza contenuto.

Risorse collegate:


Disabilita sitemap

Disabilita le sitemap generate da wordpress e la relativa pagina impostazioni.

Risorse collegate:


Disabilita wpautop

Disabilita globalmente la funzione wpautop.

Risorse collegate:


Disabilita wp_embed

Disabilita tutti gli embeds automatici generati da wordpress.

Risorse collegate:

Redirect

In questa pagina è possibile impostare le redirezioni delle pagine. Ho intenzione di sviluppare 3 tipologie di redirezione:

  • redirezione semplice via file .htaccess
  • redirezione complesso via file .htaccess con rewrite_rule
  • redirezione via php

Preciso che al momento ho sviluppato in modo funzionante ma ancora rudimentale solo la redirezione semplice via file .htaccess.

Redirect via .htaccess semplice

La pagina impostazioni contiene un form per aggiungere redirect compilando i seguenti campi:

  • vecchio url - inserire l'url relativo al sito attuale
  • nuovo url - inserire il nuovo url al quale verranno reindirizzati gli utenti che visitano il vecchio url
  • codice - selezionare il codice di stato http che segnalerà il tipo di redirezione

I redirect verranno aggiunti al file .htaccess nella root dell'installazione wordpress corrente all'interno dei markers GPCI REDIRECT durante il salvataggio impostazioni.

Esempio:

  • vecchio url: /docs/esempio-redirect/
  • nuovo url: https://www.gigitopcinformatica.it
  • codice: 301

Risultato (si aprirà una nuova scheda alla pagina iniziale di questo sito): https://www.gigitopcinformatica.it/docs/esempio-redirect/

Scorciatoie (anche barra admin superiore)

Questa pagina contiene solo una lista di collegamenti cliccabili verso altre pagine. I collegamenti possono essere definiti con php nel file options.php creando la globale collegata che conterrà un array di stringhe (una per ogni collegamento) come da esempio:

$GLOBALS['gpci']['shortcuts']['settings_page'] = [
	'<a href="'.get_home_url().'/wp-admin/edit.php?post_type=wp_block">Patterns sincronizzati</a>',
	'<a href="'.get_home_url().'/wp-admin/customize.php">Customizer</a>'
];

Risorse collegate:

  • globale php : $GLOBALS['gpci']['shortcuts']['settings_page']

Barra admin superiore

Per impostare scorciatoie nella barra admin superiore facciamo in modo simile a sopra ma cambia il nome della globale e, invece di essere un array di stringhe, è un array associativo che rispetta la struttura della admin_bar. Esempio:

$GLOBALS['gpci']['shortcuts']['admin_bar_menu'] =  [
	[ 'id'=>'pagina-esterna', 'title'=>'Titolo', 'href'=>'https://www.gigitopcinformatica.it/', 'meta'=>[] ],
	[ 'title'=>'Sono esterno', 'href'=>'https://www.gigitopcinformatica.it/', 'parent'=>null, 'meta'=>[] ],
	[ 'id'=>'funzione javascript', 'title'=>'Cambia il colore di sfondo', 'href'=>'#', 'meta'=>[
		'class'		=>'classe personalizzata',
		'onclick'	=>'document.querySelector( ".theme-editor-php" ).style.backgroundColor="red"'
	] ],
];

Alcune piccole ma importanti cose da notare:

  • la chiave id può anche non essere specificata, in questo caso verrà creata una chiave casuale
  • se non specificata la chiave parent le scorciatoie andranno all'interno del collegamento default scorciatoie, per creare voci esterni settare la chiave parent a null
  • può essere inserita una funzione javascript al posto di un url utilizzando l'attributo onclick ad esempio per generare popup contenenti informazioni (maggiori approfondimenti in un secondo momento)

Risorse collegate:

  • globale php: $GLOBALS['gpci']['shortcuts']['admin_bar_menu']

Sitemap

Questa pagina di impostazioni comparirà soltanto se la costante php gpci\tweaks\included\disable_sitemap non è impostata a 1 e serve a gestire e visualizzare le sitemap del sito. La pagina è divisa in 2 sezioni:

Gestione

In questa zona è possibile disabilitare le sitemap relative agli utenti e alle tassonomie. Per disabilitare le sitemap relative a un post type personalizzato rimuoverne semplicemente l'abilità Publicly queryable.

Sitemap correnti

Qui è possibile visualizzare le sitemap correnti compreso l'indice, è possibile anche scaricarle e copiarne l'url.

Risorse collegate:

  • costante php gpci\tweaks\included\disable_sitemap
  • costante php gpci\sitemap\included\disable_users
  • costante php gpci\sitemap\included\disable_taxonomies

Risorse utili:

Smtp

Questa pagina serve ad abilitare l'invio di email tramite uno o più server smtp personalizzati. I server smtp saranno utilizzati probabilmente insieme alla funzione SetSmtpServer dichiarata globalmente (all'interno del file functions.php) oppure all'interno di un blocco form. Ho deciso di permettere la creazione di server smtp multipli perchè si potrebbero utilizzare indirizzi di posta elettronica diversi per l'invio di email in base al contesto come: marketing, comunicazioni interne, ecc.. Configurare un server smtp è semplice come configurare un client di posta elettronica (esempio microsoft outlook o mozilla thunderbird). Vediamo la lista delle impostazioni:

Email

Indirizzo di posta elettronica che verrà utilizzato per l'invio.

Nome interno

Nome interno e opzionale per identificare subito il server di posta elettronica, non è utilizzato negli invii. Questo campo verrà utilizzato anche per la label del server nel backend.

Nome mittente

Nome che verrà visualizzato del destinatario. Se possibile utilizzarlo per identificarsi subito, comunque non è obbligatorio.

Host

Inserire l'host del server che spedirà la mail. L'host viene fornito dal provider di posta elettronica, come gmail, hotmail, aruba, serverplan, ecc...

Nome utente

Nome utente necessario all'autenticazione smtp. Solitamente è uguale all'indirizzo di posta elettronica.

Password

Password necessaria all'autenticazione smtp. Solitamente è uguale alla password della posta elettronica.

Porta

Numero della porta di comunicazione del server per l'instradamento della mail. Solitamente sarà 587 (crittografia TLS), 465 (crittografia SSL) o 25 (crittografia TLS o nessuna crittografia).

Crittografia

Tipo di crittografia (o nessuna) che verrà utilizzata per l'invio delle email. Cercare di scegliere TLS, se non è possibile SSL, se proprio ci sono problemi lato server non utilizzare crittografia ma riabilitarla appena possibile. Leggere per approfondire il protocollo smtp.

Esempi

Questi sono alcuni esempi per capire il funzionamento del sistema, non prendete queste per definitive ma verificate sempre le impostazioni del vostro provider.

Serverplan

  • Nome interno: Serverplan
  • Nome mittente: Nome azienda
  • Email: info@gigitopc.com (non esiste è solo un esempio!)
  • Host: mail.gigitopc.com
  • Nome utente: info@gigitopc.com
  • Password: password
  • Porta: 465
  • Crittografia: Ssl

Gmail

  • Nome interno: Gmail
  • Nome mittente: Nome azienda
  • Email: azienda@gmail.com
  • Host: smtp.gmail.com
  • Nome utente: azienda@gmail.com
  • Password: Dipendentemente dal contesto molto probabilmente sarà necessario: abilitare l'autenticazione a due fattori, creare una password per le app e utilizzare quella al posto di quella della mail
  • Porta: 587
  • Crittografia: Tls

Whitelist

In questa pagina possono essere aggiunti i nomi delle funzioni php che potranno essere utilizzate da utenti non amministratori nella conversione dinamica e nello shortcode render_data. Inserire il nome di una funzione senza le parentesi per ogni campo, esempio: wpautop.

Azioni ajax

In questa pagina è possibile eseguire 3 tipi di operazioni:

Azioni ajax globali

Possono essere configurate azioni ajax disponibili in tutto il sito tramite interfaccia visuale (saranno aggiunte a quelle eventualmente inpostate nel file di configurazione), inoltre è possibile eseguire eseguire ogni azione configurata direttamente da questa pagina tramite pulsante dedicato. Grazie alle condizioni le azioni possono essere limitate a questa pagina o determinati permessi, potrebbe essere molto utile ad esempio per eseguire operazioni di manutenzione, generare files, comprimere cartelle, ecc...

I parametri configurabili sono esattamente come quelli delle altre azioni configurate tramite php ma la risposta, quando l'azione è eseguita da qui, sarà sempre visualizzata sotto la textarea contenente il codice php. Notare che il campo id (ossia il nome dell'azione) deve essere una stringa compatibile con selettore html, quindi non utilizzare spazi e caratteri speciali che non siano trattini medi o bassi. Inoltre la cifratura sarà sempre quella default.

Azioni ajax a chiamata

Possono essere configurate azioni da eseguire solo tramite questa pagina, come inizializzazione di conversazioni utilizzabili da AI, operazioni di manutenzione, generare files, comprimere cartelle, ecc... E' sufficiente inserire un id/nome azione e il codice da eseguire. Queste azioni non saranno disponibili globalmente.

Azioni da query

E' possibile configurare ogni azione con i parametri di una query per interrogare il database ed eseguire codice php per ogni elemento trovato. Per ora i parametri configurabili sono ancora pochi, saranno continuamente aggiornati per avere accesso a tutti quelli utili. Notare che il tempo massimo per ogni azione query è sempre impostato a un'ora.

Note

E' importante sapere che tutte le azioni eseguite da questa pagina avranno i parametri configurati come sono salvati nei campi rispettivi, quindi è buona pratica per ora salvare la pagina prima di eseguire un'azione. In un secondo momento saranno aggiunti dei controlli javascript per disabilitare il pulsante di invio azione quando i parametri non sono stati completamente salvati.