 Grazie a tutti, io oggi sono qui per presentarvi un plug-in, in particolare in questo caso Advanced Custom Fields, perché ci permetterà di creare interfacce intuitive e adattate a casi particolari per clienti specifici. Come noi sappiamo, WordPress ci mette di default la creazione di contenuti in maniera molto semplice, quindi possiamo creare facilmente delle pagine, degli articoli, oppure con le ultime versioni, attraverso i custom post-i possiamo creare esempio dei firm, nel caso appunto di un blog per firm, portfolio, eventi, tramite alcuni plug-in di eventi, v-commerce e via discorrendo. Sappiamo che i contenuti principalmente passano attraverso l'edito donativo di WordPress. Quando vogliamo creare qualcosa di più avanzato, soprattutto nel temi premium che troviamo sotto in forest, per fare un esempio, utilizziamo il page builder. Io penso che per un designer questo sia fantastico, perché possiamo gestire i colori, possiamo gestire qualsiasi cosa in maniera rapida e veloce e soprattutto in dolore. Ma cosa capita quando c'è un cliente che va a toccare tutto questo? Quindi il cliente magari sposta fa cose strane, mette colori sballati, c'è un sito bellissimo che apparentemente era fantastico, diventa uno schifo, permette dei mil termine. WordPress ci mette a disposizione di default i campi personalizzati. Ed ecco che qui, ad avanza il custom field e entra in azione, ci permette di rendere l'esperienza che default di default WordPress ci mette a disposizione più unica. Ad avanza il custom field ci mette a disposizione circa una ventina di campi e qualcosa in più. Io diviso questi campi in diverse sezioni. Noi abbiamo i campi di tipo base che sono testo, aree di testo, numero, email, URL e password, che sono i campi semplici che possiamo trovare anche volta nei formi. Ci mette a disposizione campi di tipo contenuto, quindi ad esempio il classico editor che noi troviamo di default in WordPress, lo possiamo replicare più volte. Una funzione del campo embed, come appunto succede, possiamo embeddare video, immagini, tweet e vi riscorrendo tramite URL esterne. Possiamo caricare immagini, file, ecco la versione premium di ACF, possiamo impostare delle gallerie, quindi selezionare più immagini, non singoli immagini, per creare delle slide o delle gallerie. Poi ci sono i campi di tipo scelta, questo qui è importante perché ci permette oltre di creare dei campi di tipo select, checkbox, bottoni radio e vero falso, di impostare anche delle condizioni logiche per i campi che sussegono i campi di tipo scelta e vi spiegherò anche dopo perché. Poi esistono i campi di tipo relazione, quindi posso permettere al cliente in maniera semplicissima con l'oggetto post di definirgli alcuni post-eye, per esempio selezionami un firm da un elenco. Posso collegare automaticamente a una pagina esistente che esiste nel mio blog o il mio sito. Attraverso le relazioni che è molto simile appunto all'oggetto post, posso permettergli di filtrare i miei contenuti, quindi avrò meno attendina per filtrare post-eye, ricercare manualmente e eventualmente anche una taxonomia. E poi ci sono le taxonomie, quindi le categorie oppure taxonomie personalizzate e poi posso decidere anche ad esempio che quel tipo di post deve essere visto dall'utente Mario. Poi esistono i campi Gequiri, Google Map, quindi avrò una nostra mappa dove in maniera molto semplice potremmo inserire l'indirizzo dell'attività, un selettore data, un selettore colore, quindi questo è molto semplice. E poi ci sono questi tipi di campo layout che io li ritengo fantastici perché io lo divisi in questi due parti, quindi scheda e messaggio, perché le scheda ci permettono di suddividere i nostri campi anziché avere delle colonne un campo sotto l'altro che magari parlano gli argomenti diversi, diciamo la gallery, abbiamo dei dettagli, quindi noi in questo modo possiamo suddividere i nostri contenuti. Il messaggio ci fornisce appunto delle informazioni aggiuntive del quello che il cliente sta per fare e poi ci sono degli addonbremio che ci permettono di, con ripetitore, di organizzare più campi insieme, ad esempio non so un file tipo che può essere un pdf, qualsiasi altra cosa, è un titolo e poi c'è il contenuto flessibile che ci permette anche in questo caso simile a ripetitore ma si possono duplicare più volte delle sezioni, ovviamente anche ordinarle. Ogni campo cf presenta appunto queste impostazioni di default, ovviamente possono variare in base al tipo di campo, impostiamo come prima cosa l'etichetta, in automatico il nome che impostiamo verrà preso dal nome del campo ma questo può essere modificato, non è obbligatorio mantenere lo stesso nome. Poi si può selezionare il tipo di campo, quindi se è un testo, se è un URL, una password, anziché una relazione o un getto post, diamo delle istruzioni per quanto riguarda quello che deve essere inserito dentro di questo post. Mettiamo se questo campo deve essere richiesto, quindi se è richiesto e il campo non viene compilato ci sarà un errore di validazione, potremmo impostare un valore di default, un testo playsolder quindi che fornisce delle informazioni tipo nei campi text o textaria e antepore accodare qualsiasi elemento sia che sia un icona, che sia un testo, che sia il simbolo della valuta, euro, dollaro e di riscorrendo. Questo è quello che prima vi dicevo nei campi di tipo scelta, sono importanti perché ci permettono di assegnare una condizione logica per mostrare o nascondere il campo corrente in base al valore di un campo precedente. Quindi ad esempio se io ho una select e metto ad esempio il valore carica pdf e successivamente c'è un campo file pdf, se io seleziono carica pdf verrà mostrato questo campo, altrimenti questo campo non verrà mostrato. Un'altra cosa importante di ACF è che io posso regolare le posizioni di questi campi, quindi io costruisco dei campi personalizzati in base alla sezione che mi serve. Anche in questo caso ACF dispone di diverse posizioni, abbiamo quelle per i post, quindi possiamo definire che questi campi devono essere visibili solo per ad esempio pagine, post o custom post type, lo stato se deve essere pubblicato, se una bozza, se una revisione, il formato del post, quindi se deve essere ad esempio audio, video, citazione, galleria, vi discorrendo, la categoria che può essere appunto quella di default, o le tassonomie nel caso che ci siano ad esempio quelle per VCommerce, oppure tassonomie personalizzate, e oppure possiamo decidere che questi campi devono essere soltanto ad esempio visibili per il post ciao mondo. Quindi la X è variabile ovviamente. Per le pagine, quindi io posso assegnare i miei campi, ad esempio una pagina a contatti, vogliamo mettere una serie di campi, quindi la mappa di Google, le vi ho discorrendo, solo per la pagina a contatti. Posso definire il tipo di pagina, quindi quando ne impostiamo ad esempio la pagina, questa pagina, che cos'è la pagina principale, o la pagina blog, posso definire anche questo. Posso definire di assegnare questi campi se ad esempio quella è questa pagina e genitore di un certo tipo di pagina. E la stessa cosa con la pagina, come viene nel post, io posso decidere se questi campi devono essere ad esempio utilizzati per la pagina a servizi. Posso anche definirli per utente, quindi io posso dire se l'utente corrente Mario mostra i miei campi, se il ruolo dell'utente corrente è amministratore mostra i miei campi, se è formutente, quindi quando c'è la registrazione dell'utente, se per tutte le viste quindi siamo modifiche a creazione, solo a creazione o solo modifica. L'altra cosa importante che io posso definire ad esempio solo per l'utente, quindi soltanto gli utenti che sono collegati in quel momento, che sono ad esempio editori, collaboratori e contributori, possono vedere questi campi. Poi per ultimo possiamo legare questi campi personalizzati a una serie di altri post-type come gli allegati, le tassonomie, i commenti, quindi possiamo anche aggiungere dei commenti tipo le stelline, quando abbiamo un articolo, vogliamo mettere ad esempio una votazione per il blog, lo possiamo fare. Ci permette in maniera rapida, facilissima di creare dei widget anche avanzati, perché se voi vedete i campi che mette a disposizione, creare da zero un widget per selezionare post, creare condizioni logiche diventa complesso. ACF ci permette questo facilmente. E poi c'è la pagina Opzioni, che è un'altra futures della versione PRO, che ci permette di creare dei campi generici che possono essere inseriti in qualsiasi parte del nostro template, quindi la pagina del footer, leader e via discorrendo. Quindi cosa succede? Una volta che abbiamo visto le posizioni, non siamo obbligati a dare una singola posizione, io ho fatto due esempi. Possiamo ad esempio mettere il tipo di post, se è film, e contemporaneamente che è film, ma l'utente corrente deve essere un amministratorio, altrimenti i campi che io sto creando non sono visibili. Ci sono impostazioni aggiuntive, queste sono abbastanza facili standard, non trovo veloce, quindi possiamo definire se questo gruppo deve essere attivo o meno, perché posso crearlo, ma renderlo momentaneamente non disponibile. Definire lo stile, se deve seguire il metaboxity WordPress oppure no. La posizione, quindi delle ticchette, delle istruzioni. Definire l'ordinamento, questo è importante, perché se io ad esempio assegno diversi gruppi a una pagina, io tramite l'ordinamento crescente posso dire mostrami questo prima, mostrami quest'altro dopo. Poi ci sono le descrizioni, che è una descrizione generica, che appunto è una cosa nostra personale che ci aiuta a capire che cosa stiamo facendo. L'ultima cosa, io lo ritengo anche importante, possiamo nascondere degli elementi tipo metabox, appunto, ad esempio negli articoli. Io ho giunto dei campi tassonomie, perché ad esempio magari la nostra tassonomie di default per il cliente non è chiara, non gli piace. Io ho deciso di nascondere appunto la metabox in categoria e utilizzo l'inserimento di categorie attraverso cf. Vediamo ad essere un esempio, perché mi parto di campi, ma come è che avviene realmente inserimento. Io ho fatto un esempio appunto creando un custom post type film, dove ho definito delle schede, quindi abbiamo dettagli film, gallery e video. Sotto di questi sono diversi campi, quindi quando il film è uscito, la categoria, quindi in questo caso io non uso il betabox di warpress, quindi quello di cf, gli attori, le informazioni aggiuntive e dettagli aggiuntive, attenzione, io qui sto usando una condizione logica, è un valore boleano vero falso, quindi se informazione aggiuntive sarà fleggato, mi verrà mostrato dettagli aggiuntive, altrimenti questo campo non verrà mostrato. Andrò a definire che questi campi devono essere soltanto per i post type film, e questo sarà la schermata di come noi vedremo il nostro post type, quando andremo a creare o modificare un controllo di tipo firm, quindi ci sarà i dettagli firm, la gallery e il video. Qui ci sono alcuni esempi, ovviamente, di come si mostrano i campi. Per dichiamare ovviamente a cf, se non un plugin è molto avanzato, non va in automatico a generare quello che ne abbiamo creato, ma bisogna dichiamare i nostri campi tramite delle funzioni integrate che a cf mette a disposizione. Per fare questo all'interno del loop si inserisce la funzione de-field e metteremo il nome del campo che abbiamo insegnato per ogni nostro campo. Nel caso, vogliamo passare il valore attraverso una variabile, utilizzeremo get-field, metteremo la nostra variabile e poi la potremmo richiamare in un qualsiasi momento. La stessa cosa cade per i campi ripetitori, quindi per la versione pro, quindi in questo caso controlliamo se c'è la riga, avviamo il ciclo e anziché richiamarlo tramite dei file, essendo che è un campo al di sotto di un ripetitore, lo chiameremo de-sub-filed e nel caso appunto vogliamo passare una variabile get-sub-field. Per la pagina opzioni il discorso è semplice, semplicemente metteremo sempre la nostra funzione de-field e aggiungeremo chiamiamolo il valore option al canto al nostro nome del campo. La cosa bella di a cf che non solo ci permette di creare contenuti front-back-end, ma possiamo anche dare la possibilità ai nostri utenti di creare e modificare dei contenuti attraverso la funzione a cf-form. Io ovviamente qui ho fatto solo una brevissima introduzione per un argomento molto lungo, quindi chi vuole poi approfondire ho messo un link che si potrà andare quindi sul sito ufficiale per approfondire la questione. L'ultima cosa importante che oggi si è parto anche di sicurezza, a cf ci mette a disposizione una funzione basilare, perché ovviamente si può fare di meglio, quindi si può andare a significare quindi a sfuggire ogni tipo di campo, sia che seurelle, texte o textaria. Tramite questa funzione lui utilizza appunto il valore che utilizza il nostro editor nativo di WordPress quando inseriamo dei campi, quindi nel caso se sei JavaScript in questo modo viene ignorato, quindi gli utenti che inseriscono delle forme front-end in questo modo, abbiamo una piccola fregolette sicurezza di non incorrare in cose comunque come posso dire, tipo the malware vi discorrendo. Gli strumenti che ci mette a disposizione possiamo infine sincronizzare i campi tramite di file.js possiamo esportare il nostro PHP da inserire nel nostro template, ad esempio se lo volessimo rivendere in un marketplace personale o anche comunque esterno e possiamo infine esportare i nostri campi personalizzati e importarli in diverse installazioni WordPress. Quindi se io ad esempio faccio il mio tema per il panettiere un esempio stupido io potrei ad esempio esportare queste anziché ogni volta di crearli ogni installazione, io mi prendo questi campi e le vado ad inserire in una nuova installazione. Ovviamente questo è stato un discorso abbastanza poco forse soustivo per quello che a CF in realtà mette a disposizione, quindi per maggiori informazioni potete andare appunto a questo link ufficiale e c'è una documentazione soustiva che vi spiegherà campo dopo campo come appunto potete inserire utilizzare questo fantastico strumento. Ciao Davide, te voglio chiedere tutti questi facilities di programmazione che stanno facendo per ACF ad esempio ma anche CMB che io utilizzo al posto di ACF sembra diventare veramente obsolete tra poco con le API Fils API che sta aggiungendo WordPress come ti pensi di muovere tu che ne fai tanto uso nei tuoi lavori per migrare questa roba in futuro e come ti stai movendo insomma organizzando? Questo è sicuramente una domanda molto importante io personalmente sono in contatto con lo sviluppatore del plugin quindi lui è anche a conoscenza di questo è appunto in funzione di come si sta evolvendo la questione delle restapi che sta cambiando in modo anche di come questi campi vengono chiamati tante infatti che anche ad esempio la parte del customizer che è comunque una cosa abbastanza recente lui sta lavorando su questo aspetto e sarà possibile generare dei campi personalizzati per farti un esempio all'interno anche del customizer quindi noi possiamo WordPress mettere in disposizione dei campi standard attraverso ACF potremmo dare ulteriori modifiche appunto all'utente finale ovviamente questo bisogna anche capire fin dove WordPress si portare con questo discorso delle restapi e poi ovviamente sono tutti i discorsi che man mano si andranno ad affrontare