{"id":233891,"date":"2023-02-23T10:00:00","date_gmt":"2023-02-23T07:00:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233891"},"modified":"2022-11-11T13:01:49","modified_gmt":"2022-11-11T10:01:49","slug":"tutorial-sul-tema-wordpress-per-principianti-parte-9-menu-e-aree-widget","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/tutorial-sul-tema-wordpress-per-principianti-parte-9-menu-e-aree-widget\/","title":{"rendered":"Tutorial sul tema WordPress per principianti \u2013 Parte 9: menu e aree widget"},"content":{"rendered":"\n<p>Questa lezione spiega come aggiungere due funzionalit\u00e0 principali di WordPress al nostro tema; menu e aree widget. Impariamo come registrare una posizione per il menu di navigazione principale di un sito e visualizzare il menu nei nostri modelli, oltre a consentire l&#8217;aggiunta di widget nella nostra barra laterale e nell&#8217;area del pi\u00e8 di pagina.<\/p>\n<p>Gli appassionati di te potrebbero aver notato che n\u00e9 &quot;Menu&quot; n\u00e9 &quot;Widget&quot; sono accessibili dal menu &quot;Aspetto&quot; nel pannello di amministrazione. Questo perch\u00e9 il nostro tema non li supporta ancora. Lo risolveremo in questa lezione, a partire dai menu .<\/p>\n<h2>Menu WordPress<\/h2>\n<p>Ci sono due parti nell&#8217;aggiunta di menu nel tuo tema. Per prima cosa devi definire una o pi\u00f9 posizioni di menu nel tuo file <code>functions.php<\/code>. Un esempio \u00e8 un menu principale che sar\u00e0 nell&#8217;intestazione di tutte le pagine. La seconda parte consiste nell&#8217;aggiungere del codice nel punto in cui si desidera venga visualizzato il menu. Ad esempio nel <code>header.php<\/code>punto in cui vuoi posizionare il menu principale.<\/p>\n<h3>Registrazione di una posizione di menu<\/h3>\n<p>In questo tutorial aggiungeremo una posizione di menu per la navigazione principale del sito e collocheremo il suo output nel nostro file <code>header.php<\/code>. Iniziamo con la registrazione della posizione in <code>functions.php<\/code>, che viene eseguita utilizzando la funzione <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_nav_menu<\/a> :<\/p>\n<pre><code>add_action('init', 'wptutorial_register_menu');\nfunction wptutorial_register_menu() {\n    register_nav_menu('main-nav', __('Main Navigation', 'wptutorial'));\n}<\/code><\/pre>\n<p>Dobbiamo agganciarci all&#8217;hook <code>init<\/code>, che WordPress ha deciso essere un buon &quot;punto di controllo&quot; per la registrazione delle posizioni dei menu. All&#8217;interno della nostra funzione chiamiamo <code>register_nav_menu()<\/code>che accetta un minimo di due parametri; l&#8217;handle del menu che \u00e8 uno slug univoco che utilizzerai come identificatore durante il rendering del menu e il nome visibile del menu che appare nel pannello di amministrazione. Nota che ho racchiuso il nome all&#8217;interno <code>__()<\/code>per renderlo traducibile, come abbiamo appreso nel <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-8-translation-of-your-theme\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">passaggio precedente<\/a>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0df88967.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-151855-61e4d0df88967.png\" alt=\"Tutorial sul tema WordPress per principianti \u2013 Parte 9: menu e aree widget\" ><\/a><\/p>\n<p>Se aggiorni il tuo pannello di amministrazione, ora dovresti vedere una nuova voce di sottomenu sotto &quot;Aspetto&quot;; &#8220;Men\u00f9&quot;. Congratulazioni, il tuo tema ora supporta la creazione di menu!<\/p>\n<p>Se non hai familiarit\u00e0 con la creazione e l&#8217;amministrazione di menu in WordPress, <a href=\"https:\/\/wordpress.org\/support\/article\/appearance-menus-screen\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">questa \u00e8 una buona guida<\/a> per te.<\/p>\n<p>Crea un nuovo menu in &quot;Aspetto &gt; Menu&quot;: pu\u00f2 contenere tutto ci\u00f2 che vuoi, ho appena aggiunto i post fittizi che avevo creato nel mio WordPress.<\/p>\n<p>Dopo aver salvato il tuo primo menu, una nuova sezione chiamata &quot;Impostazioni menu&quot; apparir\u00e0 sotto l&#8217;area di modifica del menu, che ti consente di scegliere una posizione per questo menu. Dovrebbe elencare una posizione disponibile, che \u00e8 quella che abbiamo creato; &#8220;Navigazione principale&#8221;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e03b2f8.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-151855-61e4d0e03b2f8.png\" alt=\"Tutorial sul tema WordPress per principianti \u2013 Parte 9: menu e aree widget\" ><\/a><\/p>\n<p>Metti un segno di spunta in &quot;Navigazione principale&quot; e premi Salva. Ora il menu appena creato \u00e8 collegato alla posizione e verr\u00e0 visualizzato automaticamente ovunque si aggiunge il codice per l&#8217;output di questa posizione del menu. Facciamolo ora.<\/p>\n<h3>Output di una posizione di menu in un modello<\/h3>\n<p>Apri <code>header.php<\/code>e ovunque desideri che l&#8217;output del menu sia, aggiungi una chiamata a <code>wp_nav_menu()<\/code>. Questa funzione accetta un sacco di argomenti in un array per personalizzare davvero l&#8217;output del menu. Soprattutto, abbiamo bisogno del parametro che gli dice di recuperare la posizione &quot;Navigazione principale&quot;. Per farlo aggiungiamo l&#8217;argomento &#8216; <code>theme_location<\/code>&#8216; e lo impostiamo sulla maniglia del nostro menu; &#8216; <code>main-nav<\/code>&#8216;.<\/p>\n<p>Ho aggiunto l&#8217;output del menu subito dopo l&#8217;inizio del <code>&lt;body&gt;<\/code>tag, ma se hai arricchito i tuoi modelli con HTML, decidi tu stesso dove vuoi che appaia il menu.<\/p>\n<pre><code>...\n&lt;body &lt;?php body_class(); ?&gt;&gt;\n    &lt;nav class=\"main-nav\"&gt;&lt;?php wp_nav_menu(['theme_location' =&gt; 'main-nav']); ?&gt;&lt;\/nav&gt;<\/code><\/pre>\n<p>Aggiorna il tuo frontend e dovresti vedere il menu che hai creato in admin visualizzato come un elenco non ordinato all&#8217;inizio del modello.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e11c102.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-151855-61e4d0e11c102.png\" alt=\"Tutorial sul tema WordPress per principianti \u2013 Parte 9: menu e aree widget\" ><\/a><\/p>\n<p>Come al solito, ti incoraggio a scavare un po&#8217; pi\u00f9 a fondo nei parametri <code>wp_nav_menu<\/code>nella <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentazione di WordPress Codex per questo<\/a> e a giocare con come vuoi che sia l&#8217;output. Ad esempio: puoi fare in modo che non venga visualizzato in un elenco HTML, puoi limitare le voci di menu solo a determinati livelli (per evitare sottomenu) e altro ancora.<\/p>\n<p>Se sei curioso della parte stilistica; dai un&#8217;occhiata alle classi che WordPress aggiunge automaticamente a ciascuna voce di menu. Sarai in grado di aggiungere facilmente stili per voci di menu attive, voci con voci figli, voci principali di voci figlie attive, ecc.<\/p>\n<p>Nota: qualsiasi utente del tema pu\u00f2 sempre creare pi\u00f9 menu e scegliere di visualizzarli al di fuori delle posizioni registrate di un tema utilizzando i widget. Tuttavia, per fare ci\u00f2, il tuo tema deve definire alcune aree dei widget! Facciamolo dopo.<\/p>\n<h2>Aree widget<\/h2>\n<p>Le aree widget funzionano in modo abbastanza simile nel modo in cui funzionano i menu. Registri una posizione (per i widget definisci un&#8217;area in cui l&#8217;utente del tema pu\u00f2 inserire i widget) e ovunque desideri che la posizione\/area appaia nei tuoi modelli aggiungi un po&#8217; di codice che si riferisce all&#8217;id dell&#8217;handle che hai fornito nel tuo codice di registrazione.<\/p>\n<p>Definiamo un&#8217;area widget nella nostra barra laterale e una nel footer. \u00c8 comune che i temi forniscano pi\u00f9 aree widget nel pi\u00e8 di pagina per dividerli bene in colonne, ma in questo tutorial ne aggiungeremo solo uno al pi\u00e8 di pagina.<\/p>\n<p>Le aree dei widget sono denominate &quot;barre laterali&quot; nel codice di WordPress, ma non \u00e8 esclusivamente per la barra laterale destra dei vecchi tempi nei siti Web. Sembra che un nome legacy sia rimasto bloccato da un&#8217;epoca in cui i siti Web di solito avevano solo un&#8217;area widget nella barra laterale. Non pensare che le &quot;barre laterali&quot; possano riferirsi solo alle barre laterali effettive.<\/p>\n<h3>Registra aree widget<\/h3>\n<p>Iniziamo registrando due aree widget nel nostro <code>functions.php<\/code>. Utilizziamo la funzione <code>register_sidebar<\/code>per registrare le nostre barre laterali, agganciate <code>widgets_init<\/code>all&#8217;hook, che WordPress ha definito il miglior hook per registrare aree widget (e widget personalizzati).<\/p>\n<pre><code>add_action('widgets_init', 'wptutorial_register_sidebar');\nfunction wptutorial_register_sidebar() {\n    register_sidebar([\n        'name' =&gt; __('Sidebar Widget Area', 'wptutorial'),\n        'id' =&gt; 'sidebar-area'\n    ]);\n    register_sidebar([\n        'name' =&gt; __('Footer Widget Area', 'wptutorial'),\n        'id' =&gt; 'footer-area'\n    ]);\n}<\/code><\/pre>\n<p>La <code>register_sidebar()<\/code>funzione accetta un bel po&#8217; di argomenti, come minimo sono necessari gli argomenti &#8216;id&#8217; e &#8216;name&#8217;. Sono disponibili parametri per definire come si desidera che vengano emessi i wrapper HTML del widget.<\/p>\n<p>Aggiorna il tuo pannello di amministrazione e ora dovresti vedere la voce di menu &quot;Widget&quot; apparire sotto &quot;Aspetto&quot;. Nel pannello di amministrazione &quot;Widget&quot; puoi vedere due aree widget disponibili nell&#8217;area destra; che \u00e8 la nostra &quot;Area widget barra laterale&quot; e &quot;Area widget pi\u00e8 di pagina&quot;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e22862e.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-151855-61e4d0e22862e.png\" alt=\"Tutorial sul tema WordPress per principianti \u2013 Parte 9: menu e aree widget\" ><\/a><\/p>\n<p>Posiziona un widget casuale nella nostra barra laterale o nell&#8217;area widget del footer, solo cos\u00ec puoi vederlo in azione.<\/p>\n<h3>Output di un&#8217;area widget in un modello<\/h3>\n<p>L&#8217;ultima parte \u00e8 l&#8217;output delle aree dei widget nei nostri modelli. Per fare ci\u00f2 utilizziamo la funzione <code>dynamic_sidebar()<\/code>e forniamo l&#8217;handle come parametro. Apri <code>sidebar.php<\/code>e aggiungi quanto segue all&#8217;interno dei <code>&lt;aside&gt;<\/code>tag:<\/p>\n<pre><code>&lt;aside class=\"sidebar\"&gt;\n    &lt;ul&gt;&lt;?php dynamic_sidebar('sidebar-area'); ?&gt;&lt;\/ul&gt;\n&lt;\/aside&gt;<\/code><\/pre>\n<p>Si noti che l&#8217;ho racchiuso in un tag elenco non ordinato (<code>&lt;ul&gt;<\/code>). Questo perch\u00e9 di default <code>dynamic_sidebar<\/code>emette tutti i widget racchiusi negli <code>&lt;li&gt;<\/code>elementi. Ti incoraggio a giocare con i parametri di output se non ti piace che i widget siano un elenco.<\/p>\n<p>Per quanto riguarda il footer, lo aggiungiamo proprio all&#8217;inizio di <code>footer.php<\/code>, avvolto all&#8217;interno di un <code>&lt;footer&gt;<\/code>tag (se lo desideri).<\/p>\n<pre><code>    &lt;footer&gt;\n        &lt;ul&gt;&lt;?php dynamic_sidebar('footer-area'); ?&gt;&lt;\/ul&gt;\n    &lt;\/footer&gt;\n    &lt;?php wp_footer(); ?&gt;\n...<\/code><\/pre>\n<p>Questo \u00e8 tutto per i menu e le aree dei widget. Il tuo tema ora ha la flessibilit\u00e0 dell&#8217;utente di creare un nuovo menu e utilizzare un widget per visualizzarlo nella barra laterale o nel pi\u00e8 di pagina. Nella <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-10-fleshing-out-templates\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">prossima lezione<\/a> di questa serie di tutorial creeremo pi\u00f9 modelli per il nostro tema.<\/p>\n<h2>Documentazione sui metodi utilizzati<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_action\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aggiungi_azione<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_nav_menu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_nav_menu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_sidebar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_barra laterale<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/dynamic_sidebar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">barra laterale_dinamica<\/a><\/li>\n<\/ul>\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 lezione spiega come aggiungere menu di navigazione registrando la posizione del menu e anche registrando e posizionando un&#8217;area widget in WordPress.<\/p>\n","protected":false},"author":1,"featured_media":224072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,896,720,835,1110,751,751,835,928,720,928,844,844,865,865],"tags":[1168],"class_list":["post-233891","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-sviluppatore","category-guida-per-principianti","category-n-a","category-open-source-projektmanagement-3","category-soggetti","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233891","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=233891"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233891\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/224072"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=233891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=233891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=233891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}