{"id":234004,"date":"2023-02-27T16:39:00","date_gmt":"2023-02-27T13:39:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234004"},"modified":"2022-11-11T13:46:30","modified_gmt":"2022-11-11T10:46:30","slug":"codifica-per-campi-personalizzati-avanzati-unintroduzione","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/codifica-per-campi-personalizzati-avanzati-unintroduzione\/","title":{"rendered":"Codifica per campi personalizzati avanzati: un&#8217;introduzione"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.advancedcustomfields.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Advanced Custom Fields<\/a> (ACF) \u00e8 un plugin per WordPress che \u00e8 un ottimo strumento per impostare meta post personalizzati. Ti consente di creare e configurare facilmente meta box complessi e di facile utilizzo con tutti i tipi di campi e impostazioni per tipi di post, tassonomia, schermate utente e pagine di opzioni. Ed \u00e8 super intuitivo per gli sviluppatori.<\/p>\n<p>Ora \u00e8 possibile configurare manualmente le proprie meta box o impostazioni, ma per impostazioni pi\u00f9 complesse \u00e8 necessario codificare un po&#8217;, inclusi lo stile, Javascript, la convalida e la gestione del salvataggio. Immagina ad esempio di scrivere manualmente un ripetitore con un gruppo di impostazioni, una selezione multipla di post in base a una determinata query. O gestire la visualizzazione delle impostazioni che dipendono da determinate variabili come il termine o il modello di pagina assegnato (che richiede Javascript). Advanced Custom Fields gestisce tutto questo e lo fa magnificamente.<\/p>\n<p>Tieni presente che i campi personalizzati avanzati non genereranno effettivamente nessuno dei tuoi meta personalizzati nei tuoi modelli. L&#8217;output o l&#8217;esecuzione di qualcosa in base ai campi e alle impostazioni configurati con ACF spetta a te come sviluppatore da gestire. Ma questo \u00e8 facilmente realizzabile utilizzando uno qualsiasi dei metodi di ACF. \u00c8 anche bello sapere che ACF utilizza la meta funzionalit\u00e0 di base di WordPress (post, termine, utente). Ci\u00f2 significa che in realt\u00e0 salva, ad esempio, le impostazioni per i post come post meta, che puoi ottenere utilizzando funzioni di base come <code>get_post_meta()<\/code>.<\/p>\n<p>I campi personalizzati avanzati sono disponibili in una <a href=\"https:\/\/wordpress.org\/plugins\/advanced-custom-fields\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">versione gratuita<\/a> e in una versione <a href=\"https:\/\/www.advancedcustomfields.com\/pro\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Pro a pagamento<\/a>. La versione gratuita \u00e8 pi\u00f9 che sufficiente per la maggior parte dei casi, ma nella versione Pro ottieni alcune funzionalit\u00e0 aggiuntive come un campo ripetitore, un campo galleria, blocchi Gutenberg (vedi pi\u00f9 avanti) e la possibilit\u00e0 di utilizzare ACF per configurare il tuo amministratore personalizzato pagine delle opzioni. ACF \u00e8 anche cos\u00ec popolare che puoi facilmente trovare <a href=\"https:\/\/www.awesomeacf.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">estensioni<\/a> di alta qualit\u00e0 per tutto ci\u00f2 che il core ACF non copre da solo.<\/p>\n<h2>Campi personalizzati avanzati: la parte amministrativa<\/h2>\n<p>Quando installi il plug-in Advanced Custom Fields, otterrai un nuovo menu di amministrazione per &quot;Custom Fields&quot;. Qui puoi impostare e configurare le tue &quot;meta box&quot; o gruppi di impostazioni.<\/p>\n<p>All&#8217;interno di un gruppo puoi impostare tutti i campi che vuoi di diversi tipi. I pi\u00f9 comuni sono input di testo, textarea, richtext editor, file, image, true\/false (toggler), caselle di controllo, pulsanti di opzione e casella di selezione. Altri modi comuni sono molteplici modi per scegliere i post, scegliere la tassonomia, selezionare gli utenti, datepicker, colorpicker, Google Maps e molti, molti altri. A seconda del tipo di campo scelto, ottieni una gamma di opzioni aggiuntive per personalizzare il campo. Puoi anche aggiungere logica condizionale a qualsiasi campo. La logica condizionale serve per nascondere o mostrare i campi a seconda di altre opzioni all&#8217;interno del gruppo.<\/p>\n<p>Per ogni gruppo di impostazioni \u00e8 possibile definire in quali casi devono apparire queste impostazioni. Esempi sono la modifica di post, un termine di tassonomia o la modifica di un utente. Puoi personalizzare ulteriormente la visibilit\u00e0 delle tue impostazioni, ad esempio sul tipo di post. Oppure se a un post \u00e8 assegnato un determinato termine o modello di pagina, se un post \u00e8 di un determinato autore, se il ruolo dell&#8217;utente \u00e8 cos\u00ec o cos\u00ec, il ruolo dell&#8217;utente attualmente connesso o se la pagina \u00e8 una pagina padre o no. Puoi anche personalizzare dove dovrebbe apparire la meta box. Tuttavia, questa funzionalit\u00e0 \u00e8 in qualche modo ridotta ora con il nuovo editor Gutenberg.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151429-61e4cb4a07952.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151429-61e4cb4a07952.png\" alt=\"Codifica per campi personalizzati avanzati: un&#039;introduzione\" ><\/a><\/p>\n<p>Creazione di un gruppo<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151429-61e4cb4c9fa22.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151429-61e4cb4c9fa22.png\" alt=\"Codifica per campi personalizzati avanzati: un&#039;introduzione\" ><\/a><\/p>\n<p>Impostazioni per un singolo campo<\/p>\n<h2>Campi personalizzati avanzati: la parte del codice<\/h2>\n<p>Diamo un&#8217;occhiata alla parte pi\u00f9 interessante: come utilizzare i campi personalizzati avanzati per codice. Come accennato in precedenza, ACF \u00e8 super intuitivo per gli sviluppatori e offre un&#8217;ampia gamma di personalizzazione.<\/p>\n<p>Ottenere i valori e inviarli all&#8217;output nei modelli \u00e8 facile utilizzando i metodi di ACF. Ad esempio <code>the_field('your_meta_key')<\/code>per richiamarlo direttamente o <code>get_field('your_meta_key')<\/code>per memorizzarlo in una variabile PHP. Fornisci l&#8217;ID post come secondo argomento se devi recuperare i dati al di fuori del ciclo. Vai tranquillo. Potresti usare <code>get_post_meta()<\/code>, ma si consiglia di utilizzare i metodi di ACF, poich\u00e9 ACF pu\u00f2 trasformare il valore in qualcosa di pi\u00f9 significativo prima di restituirlo a te.<\/p>\n<p>Un&#8217;altra cosa di cui dovresti essere a conoscenza \u00e8 lo strumento di esportazione all&#8217;interno di ACF. Puoi esportare i gruppi creati in due formati; un file JSON scaricabile o un codice PHP puro. Il file JSON \u00e8 utile se devi esportare le impostazioni tra server di prova e live o un altro WordPress. L&#8217;esportazione in PHP puro ti d\u00e0 la possibilit\u00e0 di incollarlo direttamente nel tuo tema o nei file PHP del plugin.<\/p>\n<p>Come potresti concludere da questo; puoi usare il codice PHP, scrivendolo manualmente o esportandolo dopo averlo configurato in admin, per aggiungere i tuoi gruppi e campi. Ci\u00f2 consente un maggiore controllo e modi per generare scelte personalizzate.<\/p>\n<p>Ma aspetta, c&#8217;\u00e8 di pi\u00f9! ACF offre anche un&#8217;ampia gamma di azioni e filtri per personalizzare ulteriormente i campi oi loro valori. Sono disponibili hook per il salvataggio o il rendering di un campo, nonch\u00e9 hook per la registrazione di gruppi in base al codice (menzionato sopra) e filtri per la personalizzazione dei valori, delle impostazioni o delle scelte del campo prima del salvataggio o prima del rendering. Puoi inoltre specificare se il filtro deve interessare tutti i campi, i campi di un determinato tipo oi campi di una determinata meta chiave. Tutti i ganci e i filtri sono preceduti da <code>acf\/<\/code>.<\/p>\n<p>Dai un&#8217;occhiata alla pagina <a href=\"https:\/\/www.advancedcustomfields.com\/resources\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">della documentazione di ACF<\/a> ; fare clic su &quot;Funzioni&quot;, &quot;Azioni&quot; o &quot;Filtri&quot; per una panoramica. Troverai ottimi tutorial e guide anche su questo sito.<\/p>\n<h2>Una nota su Advanced Custom Fields e Gutenberg<\/h2>\n<p>La creazione di blocchi Gutenberg personalizzati al momento \u00e8 piuttosto scoraggiante. La documentazione non \u00e8 del tutto a posto, le modifiche si verificano spesso e richiede un po&#8217; di conoscenza di Javascript per programmare. Preferibilmente \u00e8 necessaria la conoscenza di React e di come impostare il compilatore da JSX\/ES6 con webpack e Babel.<\/p>\n<p>Tuttavia, nella <a href=\"https:\/\/www.advancedcustomfields.com\/blog\/acf-5-8-introducing-acf-blocks-for-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">versione 5.8 ACF Pro ha introdotto<\/a> una funzione per impostare un gruppo di campi come blocco Gutenberg, consentendo di aggiungere blocchi personalizzati esclusivamente con codice ACF e PHP. Nessuna conoscenza Javascript necessaria!<\/p>\n<p>Tutto quello che devi fare \u00e8 configurare i gruppi in admin o tramite codice come al solito. Ma poi definendo la loro posizione come blocco Gutenberg. Non resta che aggiungere del codice PHP per registrarli come blocco Gutenberg personalizzato con <code>acf_register_block()<\/code>. Per quella funzione si definisce un callback a una funzione PHP o a un file modello che \u00e8 responsabile del rendering dell&#8217;output del blocco. Scrivi questa funzione o parte del modello completamente in PHP e usi metodi familiari come <code>get_field()<\/code>per ottenere i valori di impostazione.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151429-61e4cb4fc3c57.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151429-61e4cb4fc3c57.png\" alt=\"Codifica per campi personalizzati avanzati: un&#039;introduzione\" ><\/a><\/p>\n<p>Come appare un blocco ACF nell&#8217;editor di Gutenberg<\/p>\n<p>Resta sintonizzato nella <a href=\"https:\/\/awhitepixel.com\/blog\/category\/advanced-custom-fields\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">categoria Campi personalizzati avanzati<\/a> per tutorial su come utilizzare questo plugin!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Questa guida per principianti esamina il plugin di WordPress Advanced Custom Fields (ACF) e come tu come sviluppatore puoi utilizzarlo.<\/p>\n","protected":false},"author":1,"featured_media":224889,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,896,896,720,918,1110,814,814,720,844,844,865,865],"tags":[1168],"class_list":["post-234004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-codice","category-sviluppatore","category-n-a","category-plugin-2","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/234004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=234004"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/234004\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/224889"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=234004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=234004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=234004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}