{"id":233363,"date":"2023-02-11T17:46:00","date_gmt":"2023-02-11T14:46:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233363"},"modified":"2022-11-10T20:41:22","modified_gmt":"2022-11-10T17:41:22","slug":"tutorial-sul-tema-wordpress-per-principianti-parte-11-modelli-di-pagina-personalizzati","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/tutorial-sul-tema-wordpress-per-principianti-parte-11-modelli-di-pagina-personalizzati\/","title":{"rendered":"Tutorial sul tema WordPress per principianti \u2013 Parte 11: modelli di pagina personalizzati"},"content":{"rendered":"\n<p>In questa lezione di tutorial sul tema WordPress per principianti impariamo a conoscere i modelli di pagina, cosa sono, come crearli e le migliori pratiche. Faremo un modello a larghezza intera come esempio. Lungo la strada aggiungiamo anche una classe al corpo chiedendo se la pagina utilizza un modello di pagina specifico.<\/p>\n<h2>Cosa sono i modelli di pagina<\/h2>\n<p>I modelli di pagina sono utili nei casi in cui desideri un layout o una configurazione diversi per una pagina specifica. Esempi comuni di utilizzo dei modelli di pagina sono l&#8217;elenco dei post in un tipo di post personalizzato (ad es. portfolio, libri o servizi), con contenuto o layout completamente diverso (ad es. all&#8217;interno delle colonne) o anche semplicemente creando una pagina a larghezza intera (nessuna barra laterale).<\/p>\n<p>L&#8217;usabilit\u00e0 dei modelli di pagina \u00e8 diminuita dopo la versione 5.x di WordPress (Gutenberg). Il nuovo editor Gutenberg consente una grande flessibilit\u00e0 per creare tali pagine senza la necessit\u00e0 di modelli di pagina. Indipendentemente da ci\u00f2, impareremo come aggiungere un modello di pagina personalizzato nel nostro tema.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153948-61e516ac9d3c4.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-153948-61e516ac9d3c4.png\" alt=\"Tutorial sul tema WordPress per principianti \u2013 Parte 11: modelli di pagina personalizzati\" ><\/a><\/p>\n<p>All&#8217;interno della metabox &quot;Attributi di pagina&quot; per le pagine \u00e8 dove appare la scelta del modello di pagina. Ma l&#8217;opzione del modello apparir\u00e0 solo se il tema attivo ha almeno un modello di pagina.<\/p>\n<p>I modelli di pagina possono effettivamente essere utilizzati anche per post e tipi di post personalizzati. Dopo WordPress 4.7 e versioni successive, puoi definire a quali tipi di post desideri che il modello sia disponibile. WordPress aggiunger\u00e0 automaticamente il metabox &quot;Attributi della pagina&quot; richiesto a quei tipi di post.<\/p>\n<h2>Denominazione e posizionamento del modello di pagina<\/h2>\n<p>Per iniziare, di solito faresti una copia di qualsiasi file modello sia pi\u00f9 vicino a ci\u00f2 che desideri ottenere con il modello di pagina. Nella maggior parte dei casi \u00e8 <code>page.php<\/code>. Per quanto riguarda la denominazione del modello di pagina, dipende da te. Ma ci sono delle regole e del buon senso.<\/p>\n<p>Si \u00e8 tentati di nominare semplicemente il modello di pagina, ad esempio <code>page-books.php<\/code>per un modello che elenca un tipo di post personalizzato libri. Non anteporre mai il modello di pagina con &#8216; <code>page-<\/code>&#8216;! Se ricordi dalla <a href=\"https:\/\/codex.wordpress.org\/File:Template_Hierarchy.png#file\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gerarchia dei modelli<\/a> di WordPress, WordPress cercher\u00e0 <code>page-&lt;slug&gt;.php<\/code>prima di tentare <code>page.php<\/code>e gli utenti del tuo tema potrebbero riscontrare comportamenti imprevisti.<\/p>\n<p>Una buona pratica \u00e8 anteporre al modello di pagina qualcosa che non fa parte dei nomi dei modelli di pagina di WordPress. Ad esempio &quot; <code>pagetemplate-'<\/code>, &quot; <code>pt-<\/code>&quot; o semplicemente il nome completo &quot; <code>fullwidth-template.php<\/code>&quot;. \u00c8 anche buona norma tenerli in una sottocartella; <code>\/page-templates\/<\/code>tuttavia questo non va bene se vuoi che il tuo tema sia disponibile per l&#8217;estensione con un tema figlio. Un tema figlio non pu\u00f2 sostituire i modelli di pagina inseriti in una sottocartella nel tema principale.<\/p>\n<p>Dopo aver deciso per un modello di denominazione, andiamo avanti e creiamo un modello di pagina.<\/p>\n<h2>Creazione di un modello di pagina<\/h2>\n<p>Crea una copia <code>page.php<\/code>e rinominala in <code>pagetemplate-fullwidth.php<\/code>. Per trasformarlo in un modello di pagina, devi solo aggiungere un commento all&#8217;inizio che dice a WordPress che questo \u00e8 un modello di pagina:<\/p>\n<pre><code>&lt;?php \n\/*\nTemplate Name: Fullwidth \n*\/\nget_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n...<\/code><\/pre>\n<p>Tutto ci\u00f2 di cui hai bisogno \u00e8 un commento all&#8217;inizio del file, con &quot;Nome modello:&quot; e il nome del modello dopo di esso. Questo \u00e8 tutto! Vai in amministrazione, modifica una pagina e dovresti vedere l&#8217;opzione per scegliere &quot;Fullwidth&quot; come modello.<\/p>\n<p>Ho gi\u00e0 detto che in WordPress 4.7 puoi definire per quali tipi di post desideri che il modello di pagina sia disponibile. In questo momento \u00e8 disponibile solo per le pagine, ma dici di volere anche l&#8217;opzione per creare post a larghezza intera? In tal caso, aggiungi &quot;Tipo di post modello:&quot; all&#8217;interno dello stesso blocco di commenti e definisci i tipi di post separati da virgola. Ad esempio, per renderlo disponibile sia per i post che per le pagine;<\/p>\n<pre><code>&lt;?php \n\/*\nTemplate Name: Fullwidth \nTemplate Post Type: post, page\n*\/\nget_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n...<\/code><\/pre>\n<p>Modifica un post e dovresti vedere una nuova metabox &quot;Attributi del post&quot; in cui puoi scegliere il modello Larghezza intera. Simpatico!<\/p>\n<h2>Modifica del codice nel nostro modello di pagina<\/h2>\n<p>Ora modifichiamo il modello di pagina in modo che in realt\u00e0 faccia qualcosa di diverso dalla visualizzazione a pagina singola. Rimuoviamo la richiesta per il modello della barra laterale: (l&#8217;ho commentato per renderlo pi\u00f9 visibile, ma puoi semplicemente eliminare la riga).<\/p>\n<pre><code>...\n    ?&gt;&lt;p&gt;&lt;?php _e('No posts, sorry.', 'wptutorial'); ?&gt;&lt;\/p&gt;&lt;?php\n}\n\/\/get_sidebar(); \nget_footer(); ?&gt;<\/code><\/pre>\n<p>Facciamo un&#8217;altra cosa per rendere pi\u00f9 facile lo stile del nostro modello di pagina. Quando aggiungi CSS, spesso devi sapere se la pagina ha una barra laterale o meno, per regolare le colonne\/layout. Ricordi <code>body_class<\/code>quale fornisce un sacco di classi utili all&#8217;elemento body? E se aggiungessimo una classe personalizzata al corpo che ci dice se la pagina corrente ha una barra laterale o meno?<\/p>\n<h2>Filtra<code>body_class<\/code><\/h2>\n<p>Nota: potresti aver notato che qualsiasi pagina o post che utilizza un modello di pagina ottiene gi\u00e0 una classe corpo specifica; &#8220;page-template-&quot; \u2013 nel nostro esempio <code>\"page-template-pagetemplate-fullwidth\"<\/code>. \u00c8 una lezione piuttosto lunga e, inoltre, vogliamo rendere il nostro tema pi\u00f9 flessibile e consentire l&#8217;intera larghezza su altri modelli oltre a quelli che utilizzano il modello di pagina. Ad esempio, di solito non vuoi una barra laterale in prima pagina, giusto?<\/p>\n<p>Nota: questo aggiunge solo una classe al corpo, quindi lo styling diventa pi\u00f9 semplice, in realt\u00e0 non disabilita l&#8217;output della barra laterale. Devi ricordarti di eliminare il <code>get_sidebar()<\/code>ovunque tu non lo desideri.<\/p>\n<p>Aggiungiamo un filtro per <code>body_class<\/code>aggiungere una classe barra laterale personalizzata nel nostro <code>functions.php<\/code>, in modo che tu possa aggiungerne in seguito in altri casi in cui non desideri la barra laterale. WordPress ha un bel tag condizionale per verificare se un modello di pagina \u00e8 in uso; <code>is_page_template()<\/code>dove metti il \u200b\u200bnome del modello di pagina come parametro. Vogliamo aggiungere una classe se questo non \u00e8 vero, quindi aggiungiamo il contrario con &quot;!&quot;:<\/p>\n<pre><code>add_filter('body_class', 'wptutorial_body_class_filter');\nfunction wptutorial_body_class_filter($classes) {\n    if (!is_page_template('pagetemplate-fullwidth.php')) {\n        $classes[] = 'has-sidebar';\n    }\n    return $classes;\n}<\/code><\/pre>\n<p>Molto probabilmente durante lo sviluppo dei modelli, occasionalmente ti imbatterai in modelli a cui non desideri aggiungere la classe della barra laterale e, man mano che procedi, aggiungi quei casi all&#8217;interno di questo <code>if<\/code>. Ad esempio, se non vuoi che la classe della barra laterale sia in prima pagina, puoi aggiungere <code>!is_front_page()<\/code>. Questo aggiunger\u00e0 la classe &quot;has-sidebar&quot; a tutte le pagine tranne la prima pagina e il modello di pagina:<\/p>\n<pre><code>if (!is_front_page() &amp;&amp; !is_page_template('pagetemplate-fullwidth.php'))<\/code><\/pre>\n<p>Sta a te decidere quanti modelli di pagina desideri e cosa dovrebbero contenere. Questa era solo una semplice introduzione. Se sei interessato a come interrogare altri post all&#8217;interno di modelli di pagina, dai un&#8217;occhiata al <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-12-custom-post-queries\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">passaggio successivo<\/a>.<\/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>In questa lezione a tema per principianti impariamo a conoscere i modelli di pagina personalizzati in WordPress; cosa sono, come crearli e le best practices.<\/p>\n","protected":false},"author":1,"featured_media":223984,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,896,720,835,1110,804,804,835,928,720,928,844,844,865,865],"tags":[1168],"class_list":{"0":"post-233363","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-codice","9":"category-sviluppatore","10":"category-guida-per-principianti","11":"category-n-a","12":"category-php-6","15":"category-soggetti","18":"category-tutorial","20":"category-wordpress-6","22":"tag-affiai-it"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233363","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=233363"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/223984"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=233363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=233363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=233363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}