# Config

Per utlizzare al meglio FC DiviChild, la prima cosa da fare è impostare al meglio il file di configurazione. Il file di configurazione includes/config.php contiene tutta una serie di parametri che permettono di attivare e disattivare molte funzioni del tema. Sempre dal file di configurazione è possibile facilitare alcune operazioni come il caricamento di file js e css o impostare dei resize custom delle immagini.

Di seguito alcuni fondamentali parametri e funzioni attivabili attraverso il file di configurazione.

# Staging IP based redirect

Questa funzione permette di attivare il rindirizzamento del sito di staging per tutti gli IP ad eccezione di alcuni. Questa funzione è utile per evitare problematiche SEO e per proteggere il proprio lavoro. È possibile specificare l'URL verso cui fare redirect, gli IP da escludere (e quindi ai quali permettere l'accesso) e i domini da escludere dal redirect. Questo ultimo parametro serve per specificare l'url di produzione e i vari URL locali di sviluppo che altrimenti sarebbero inaccessibili.

  • Type: bool,string,array
  • Default: false, 'xx.xx.xxx.xxx', empty
$theme_config->staging->redirect_active = false;
$theme_config->staging->redirect_to = "";
$theme_config->staging->redirect_allowed_ips = array(
    'xx.xx.xx.xx' // Default IP
);
$theme_config->staging->redirect_exclude_domains = array(); // add here production site and/or your local develope domain without (http or https)

# Debug

  • Type: bool
  • Default: false

Questa serie di parametri attiva/disattiva le funzioni di debug PHP per frontend e backend.

$theme_config->debug->frontend = false;
$theme_config->debug->backend = false;

# WP Memory Limit

  • Type: string
  • Default: 256M
$theme_config->memory_limit = "256M";

Questo parametro permette la configurazione del memory limit, solitamente gestito nel file wp-config.php
Questo funzione utilizza la funzione php ini_set() che agisce direttamente sull'init di PHP, pertanto, in alcune specifiche configurazioni di server, potrebbe non funzionare. Qualora dovessero verificarsi problemi, si consiglia di impostare il valore di questo parametro a vuoto o false e agire nel file wp-config.php o direttamente nel php.ini.

# Traduzioni

  • Type: bool
  • Default: false

Carica i textdomain necessari per le traduzioni .po/.mo necessari all'override delle traduzioni del tema parent

$theme_config->divi_translations->theme = false;
$theme_config->divi_translations->builder = false;

Per l'uso delle funzioni di traduzione consultare l'apposita sezione della documentazione.

# Built-In Functions

  • Type: bool
  • Default: false

Attivazione/disattivazione delle funzioni di estensione del tema.
Di seguito l'esempio della funzione next and prev.

$theme_config->builtin_functions->next_and_prev = true;
$theme_config->builtin_functions->next_and_prev_shortcode = true;

Per l'uso delle funzioni Built-In consultare l'apposita sezione della documentazione.

# Image Sizes

  • Type: array
  • Default: empty
$theme_config->images_custom_sizes = array()

Attraverso questa opzione è possibile impostare dei custom resize per le immagini che vengono caricate in WP attraverso la gestione media.

Di default questo array è vuoto e pertanto vengono eseguiti soltanto i resize impostati dal tema parent.

Per attivare i resize custom è sufficiente aggiungere ogni resize come elemento dell'array in forma key => value dove key è lo slug del resize e value la misura del resize.

Di seguito un esempio di come potrebbe essere un array popolato per un resize di nome "fc_small" e di misura 250px.

$theme_config->images_custom_sizes = array( 
    "fc_small" => 250
);

# Librerie esterne

  • Type: bool,string
  • Default: false,empty

Librerie predisposte per il caricamento, sia lato JS che CSS.
Queste librerie assolvono a differenti compiti.

$theme_config->libs->owl = false;
$theme_config->libs->tiny_slider = false;
$theme_config->libs->fdccookielaw = false;
$theme_config->libs->jqueryui = false;
$theme_config->libs->google_fonts = false;
$theme_config->libs->google_fonts_link = "";

Per l'uso delle libreire consultare l'apposita sezione della documentazione.

Attenzione La disponibilità delle librerie esterne potrebbe variare nel tempo.

# Iubenda

  • Type: bool,string
  • Default: false,variuos

Attraverso questi parametri è possibile impostare alcuni valori necessari alla gestione dei caricamenti di script rilascianti cookie di profilazione che richiedono accettazione.

$theme_config->iubenda_head_script->active = false;
$theme_config->iubenda_head_script->parameters->iubenda_id = "_iub_cs-44481581";
$theme_config->iubenda_head_script->parameters->functionality_storage = "denied";
$theme_config->iubenda_head_script->parameters->personalization_storage = "denied";
$theme_config->iubenda_head_script->parameters->security_storage = "granted";
$theme_config->iubenda_head_script->parameters->wait_for_update = 0;

# Divi Default "Project" Custom Post

  • Type: bool
  • Default: true
$theme_config->removeProjects = true;

Attraverso questo parametro è possibile riattivare i custom post nativi di Divi che nella maggior parte dei casi non vengono utilizzati.

# Stiky mobile menu bar

  • Type: bool
  • Default: false
$theme_config->sticky_mobile_menu = false;

Attraverso questo parametro è possibile forzare la barra del menu a rimanere fissata in alto nel mobile.

# Collapsible Mobile Submenues

  • Type: bool
  • Default: false
$theme_config->mobile_collapsible_submenues = false;

Questa opzione attiva i submenu collassibili nel menu mobile. Questa opzione agisce principalmente lato Javascript e pertanto è poco overridabile in termini di funzionamento. Se necessario lasciare disattivata questa opzione e implementare codice custom.

SCSS
Lato scss il codice necessario (che sicuramente richiederà delle modifiche necessarie all'adattamento al design) è contenuto in scss/core/partials/modules/_mod--mobile-fixed-nav.scss. A differenza della funzionalità stessa, per evitare dimenticanze, lo stile scss è di default abilitato ma è possibile disattivarlo (anche solo per overridarlo con più libertà) attraverso il parametro di configurazione SCSS ``.

# Divi Contact Form Privacy

  • Type: string

Queste stringhe contengono del testo (GDPR compliant) che verrà mostrato prima del pulsante di invio nel modulo contact form nativo di Divi.

$theme_config->contact_module_privacy_text = "Dichiaro di aver letto e accettato la <a href=\"/privacy-policy\" target=\"_BLANK\">privacy policy</a> di questo sito";
$theme_config->newsletter_module_privacy_text = "Dichiaro di aver letto e accettato la <a href=\"/privacy-policy\" target=\"_BLANK\">privacy policy</a> di questo sito. Accetto inoltre che mi vengano inviate, solo dal brand proprietario di questo sito, comunicazioni di tipo pubblicitario.";

Attenzione!

Queste due variabili sono state spostate nel blocco relativo alla localizzazione delle stringhe usate nel codice Javascript del tema child.

# Localizzazione Stringhe JS

  • Type: string

In questo nodo della configurazione sono presenti alcune stringhe traducibili che vengono passate ai file JS. È possibile aggiungere tutte le stringhe necessarie.

$theme_config->localize_text->open_submenu = __('Open Submenu','divichild');
$theme_config->localize_text->contact_module_privacy_text = wp_kses(
    sprintf(
        __( 'I have read and understand the <a href="%s">privacy policy</a> of this site', 'divichild' ),
        esc_url( '/privacy-policy' )
    ),
    array(
        'a' => array(
            'href' => array()
        ),
    )
);
$theme_config->localize_text->newsletter_module_privacy_text = wp_kses(
    sprintf(
        __( 'I have read and understand the <a href="%s">privacy policy</a> of this site. I also agree that I may be sent, only by the brand owner of this site, advertising-type communications.', 'divichild' ),
        esc_url( '/privacy-policy' )
    ),
    array(
        'a' => array(
            'href' => array()
        ),
    )
);

# Shortcodes

  • Type: bool
  • Default: false

Attivazione/disattivazione di alcuni shortcode disponibili.
Questa parte del file e le relative funzioni saranno soggette a importanti modifiche nelle future release del tema.

$theme_config->shortcodes->buttons = false;
$theme_config->shortcodes->getmenu = true;
$theme_config->shortcodes->policy = false;
$theme_config->shortcodes->posts_carousel = false;
$theme_config->shortcodes->posts_loop = false;

Attenzione!

Gli shortcode di default non sono definitivi e verranno sistemati nelle prossime release, pertanto è sconsigliato l'uso in produzione.

# WooCommerce

  • Type: bool
  • Default: false

Questo parametro attiva l'inclusione del file includes/woocommerce/woocommerce_functions.php che dovrà funzionare da entry point per tutte le funzioni custom relative a WooCommerce.

$theme_config->woocommerce->active = false;

# Inclusioni Custom CSS

  • Type: array
  • Default: empty

Attraverso questo array è possibile caricare uteriori file css semplicemente popolando l'array come mostrato nell'esempio qui sotto.

$theme_config->custom_css = array(
    
    "handleDelFile" => array(
        "/path/del/file.css",
        "fileDipendenza",
        "1.0.0",
        "screen" // this value can be omitted
    ),
    
);

# Inclusioni Custom JS

  • Type: array
  • Default: empty

Attraverso questo array è possibile caricare uteriori file js semplicemente popolando l'array come mostrato nell'esempio qui sotto.

$theme_config->custom_js = array(
    
    "handleJS" => (object) array(
        "src" => "/path/del/file.js",
        "deps" => array('jquery'),
        "ver" => "1.0.0",
        "in_footer" => true,
        "module" => false,
        "args" => array()
    ),
    
);
  • Il parametro "module" impostato in true caricherà il file js come modulo
  • Il i valori del parametro "args" saranno passati al JS secondo le specifiche della funzione localize script di WordPress