{"id":233789,"date":"2023-02-21T13:03:00","date_gmt":"2023-02-21T10:03:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233789"},"modified":"2022-11-11T12:25:00","modified_gmt":"2022-11-11T09:25:00","slug":"tutorial-sul-tema-wordpress-per-principianti-parte-7-impostazione-del-tema-e-immagini-in-primo-piano","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/tutorial-sul-tema-wordpress-per-principianti-parte-7-impostazione-del-tema-e-immagini-in-primo-piano\/","title":{"rendered":"Tutorial sul tema WordPress per principianti \u2013 Parte 7: Impostazione del tema e immagini in primo piano"},"content":{"rendered":"\n<p>Questa lezione del tutorial sul tema WordPress per principianti continua aggiungendo il codice di base necessario per l&#8217;impostazione del tema. Impariamo ad aggiungere supporti per i temi e, di conseguenza, la funzionalit\u00e0 dell&#8217;immagine in primo piano di WordPress viene attivata. In questa lezione correggeremo anche il titolo della prima pagina applicando il nostro primo filtro.<\/p>\n<p>Lavoreremo principalmente in <code>functions.php<\/code>file che abbiamo aggiunto nella <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-6-a-themes-functions-file\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lezione precedente<\/a>. Alla fine aggiungeremo il codice per l&#8217;output delle immagini in primo piano all&#8217;interno dei nostri modelli.<\/p>\n<h2>Impostazione del tema<\/h2>\n<p>Tutti i temi necessitano di un codice per configurarlo dicendo a WordPress di attivare determinate funzionalit\u00e0. Ci\u00f2 include l&#8217;attivazione di menu, widget, traduzione e cos\u00ec via. Questo \u00e8 comunemente fatto in una &quot;funzione del tema di installazione&quot;, solitamente agganciata a un hook chiamato convenientemente <code>after_setup_theme<\/code>. Per alcune cose specifiche abbiamo bisogno di usare l&#8217;hook di inizializzazione di WordPress chiamato <code>init<\/code>.<\/p>\n<h3>Scrivere il codice di configurazione del tema necessario per<code>after_setup_theme<\/code><\/h3>\n<p>Impostiamo una tale &quot;funzione del tema di installazione&quot; nel nostro <code>functions.php<\/code>, collegato a <code>after_setup_theme<\/code>:<\/p>\n<pre><code>add_action('after_setup_theme', 'wptutorial_setup_theme');\nfunction wptutorial_setup_theme() {\n\u00a0\n}<\/code><\/pre>\n<p>All&#8217;interno di questa funzione aggiungeremo un sacco di funzioni di configurazione comuni e utili per i temi di WordPress. Si prega di inserire tutti i seguenti pezzi di codice all&#8217;interno della funzione di configurazione.<\/p>\n<p>Per prima cosa dobbiamo definire una larghezza massima di immagini e incorporamenti (come i video). Questo assicura che quando gli autori inseriscono immagini di grandi dimensioni nei post, le immagini rimangano entro una certa larghezza. L&#8217;ho impostato su 840 pixel (perch\u00e9 voglio spazio per la barra laterale), ma puoi regolarlo a tuo piacimento.<\/p>\n<pre><code>$GLOBALS['content_width'] = 840;<\/code><\/pre>\n<p>Dovremmo anche informare WordPress che il tema \u00e8 traducibile e dove pu\u00f2 cercare i file di traduzione. Andr\u00f2 nella traduzione del tema WordPress in dettaglio 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 successivo<\/a> di questa serie di tutorial sul tema.<\/p>\n<pre><code>load_theme_textdomain('wptutorial', get_stylesheet_directory(). '\/lang');<\/code><\/pre>\n<p>Nota l&#8217;uso di una nuova funzione per ottenere la directory del tuo tema, <code>get_stylesheet_directory()<\/code>. Questo \u00e8 molto simile a quello che <code>get_stylesheet_directory_uri()<\/code>abbiamo riscontrato nell&#8217;ultimo passaggio, ma qui abbiamo bisogno del percorso relativo, non dell&#8217;URL.<\/p>\n<p>Quindi dobbiamo aggiungere alcuni &quot;supporti per temi&quot;, che stanno attivando la funzionalit\u00e0 di WordPress che non \u00e8 attivata di default.<\/p>\n<pre><code>add_theme_support('automatic-feed-links');\nadd_theme_support('post-thumbnails');\nadd_theme_support('html5', [\n    'search-form',\n    'comment-form',\n    'comment-list',\n    'gallery',\n    'caption',\n]);\nadd_theme_support('custom-logo', [\n    'height'      =&gt; 100,\n    'width'       =&gt; 300,\n    'flex-width'  =&gt; true,\n    'flex-height' =&gt; false,\n]);\nadd_theme_support('customize-selective-refresh-widgets');<\/code><\/pre>\n<p>Era un sacco di <code>add_theme_support<\/code>chiamate! Come suggerisce il nome, <code>add_theme_support<\/code>dice a WordPress di attivare funzionalit\u00e0 che non sono attivate per impostazione predefinita. Ad esempio le immagini in primo piano (&quot;post-miniature&quot;), il supporto per i tag HTML5 e la funzione del logo personalizzato di WordPress in Customizer (regola l&#8217;immagine del logo desiderata se lo desideri!).<\/p>\n<p>Ci sono molte altre funzioni interessanti, quindi ti incoraggio a sfogliare la <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_theme_support\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentazione per add_theme_support<\/a>. Ad esempio ce n&#8217;\u00e8 uno abbastanza nuovo, <code>title-tag<\/code>, che gestisce il tag del titolo. L&#8217;ho omesso in questo tutorial poich\u00e9 abbiamo gi\u00e0 aggiunto <code>header.php<\/code>manualmente il tag del titolo.<\/p>\n<p>Tieni presente che se aggiungi il supporto per <code>title-tag<\/code>, dovresti rimuovere il tag del titolo dal file di intestazione per evitare di ottenere tag del titolo duplicati.<\/p>\n<p>Infine ne aggiungiamo alcuni <code>add_theme_support<\/code>per il nuovo Gutenberg in WordPress. Aggiungeremo il supporto per ampie sezioni, attivando la funzionalit\u00e0 degli stili di blocco e il supporto per incorporamenti reattivi:<\/p>\n<pre><code>add_theme_support('wp-block-styles');\nadd_theme_support('align-wide');\nadd_theme_support('responsive-embeds');<\/code><\/pre>\n<h3>Il risultato finale<\/h3>\n<p>Ecco la funzione di configurazione finale nel nostro <code>functions.php<\/code>:<\/p>\n<pre><code>add_action('after_setup_theme', 'wptutorial_setup_theme');\nfunction wptutorial_setup_theme() {\n    $GLOBALS['content_width'] = 840;\n    \/\/ Make your theme ready for translation\n    load_theme_textdomain('wptutorial', get_stylesheet_directory(). '\/lang');\n    \/\/ Add theme support for WordPress functionality\n    add_theme_support('automatic-feed-links');\n    add_theme_support('title-tag');\n    add_theme_support('post-thumbnails');\n    add_theme_support('html5', [\n        'search-form',\n        'comment-form',\n        'comment-list',\n        'gallery',\n        'caption',\n    ]);\n    add_theme_support('custom-logo', [\n        'height'      =&gt; 100,\n        'width'       =&gt; 300,\n        'flex-width'  =&gt; true,\n        'flex-height' =&gt; false,\n    ]);\n    add_theme_support('customize-selective-refresh-widgets');\n    \/\/ Add theme support for Gutenberg specific functionality\n    add_theme_support('wp-block-styles');\n    add_theme_support('align-wide');\n    add_theme_support('responsive-embeds');\n}<\/code><\/pre>\n<p>Dopo aver salvato, ora dovresti essere in grado di aggiungere immagini in primo piano ai post in admin! Aggiungiamo un&#8217;altra correzione del tema <code>functions.php<\/code>prima di aggiungere le immagini in primo piano ai nostri modelli; ricordi che <code>wp_title<\/code>nel nostro <code>header.php<\/code>di default non puoi echeggiare nulla in prima pagina? Risolviamolo.<\/p>\n<h2>Aggiunta di un filtro a<code>wp_title<\/code><\/h2>\n<p>Aggiungiamo la nostra prima corretta funzione di modifica del filtro, utilizzando <code>add_filter()<\/code>. Il filtro a cui ci collegheremo ha lo stesso nome della funzione che abbiamo usato per WordPress per recuperare dinamicamente il titolo della pagina; <code>wp_title<\/code>. Quello che risolveremo \u00e8 assicurarci che il titolo non sia vuoto in prima pagina, che \u00e8 l&#8217;impostazione predefinita in WordPress. Quando in prima pagina vogliamo che sia popolata con il nome del sito WordPress.<\/p>\n<p>Tieni presente di <strong>restituire sempre<\/strong> la variabile filtrata nelle tue funzioni di filtro! Tutti i filtri modificano una variabile e, se non si restituisce nulla, la variabile diventa indefinita. Questo pu\u00f2 causare molti problemi. Per ulteriori approfondimenti sui filtri, dai un&#8217;occhiata al mio <a href=\"http:\/\/awhitepixel.com\/blog\/all-about-hooks-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">post che spiega tutto su hook e filtri<\/a>.<\/p>\n<h3>Sapere quando personalizzare il titolo<\/h3>\n<p>Vogliamo personalizzare la variabile title solo se siamo in prima pagina. Per tutte le altre pagine vogliamo lasciarlo in pace (basta restituirlo cos\u00ec com&#8217;\u00e8). Ma come facciamo a sapere quando siamo in prima pagina?<\/p>\n<p>Possiamo sfruttare <a href=\"https:\/\/codex.wordpress.org\/Conditional_Tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">i tag condizionali di WordPress<\/a>, che sono un sacco di utili funzioni che restituiscono true o false in base a una condizione. Questi sono pi\u00f9 comunemente usati per chiedere se ci troviamo in una determinata pagina o modello. Possiamo semplicemente chiedere &quot;Siamo in prima pagina?&quot;. Se questo metodo restituisce true, solo allora modificheremo la variabile title.<\/p>\n<p>Vale la pena notare che ci sono due tag condizionali per la prima pagina, vale a dire <code>is_home()<\/code>e <code>is_front_page().<\/code>Questi differiscono a seconda dell&#8217;impostazione di &quot;Lettura&quot;, indipendentemente dal fatto che la tua prima pagina mostri o meno gli ultimi post o sia impostata su una pagina fissa. Se segui questo tutorial con una nuovissima installazione di WordPress con l&#8217;impostazione predefinita, usi <code>is_front_page()<\/code>.<\/p>\n<h3>Ottenere il nome del sito WordPress<\/h3>\n<p>Ora sappiamo quale filtro utilizzare e come assicurarci di cambiare il titolo solo se siamo nel posto giusto. Ma quale dovrebbe essere il titolo? Di solito il titolo della pagina per la prima pagina sarebbe il nome del tuo sito WordPress. Ma come otteniamo queste informazioni?<\/p>\n<p>Per recuperare informazioni sull&#8217;installazione corrente di WordPress utilizziamo la <code>bloginfo()<\/code>funzione. Come parametro chiediamo di restituire il nome del sito, cosa che avviene impostando il parametro su &#8216; <code>name<\/code>&#8216;. E poich\u00e9 questo \u00e8 un filtro e dobbiamo restituirlo, non farlo eco, usiamo il suo metodo gemello <code>get_bloginfo()<\/code>. La chiamata <code>bloginfo()<\/code>echegger\u00e0 sempre l&#8217;output.<\/p>\n<pre><code>add_filter('wp_title', 'wptutorial_title_filter');\nfunction wptutorial_title_filter($title) {\n    if (is_front_page()) {\n        return get_bloginfo('name');\n    }\n    return $title;\n}<\/code><\/pre>\n<p>Se aggiorni la tua prima pagina, dovresti vedere che il nome del tuo sito appare nel <code>&lt;title&gt;<\/code>tag (e nella scheda del browser)! Il nostro filtro interessa solo la prima pagina, quindi qualsiasi altra pagina come il singolo post, dovrebbe comunque restituire lo stesso di prima; il titolo del post.<\/p>\n<h2>Output di immagini in primo piano nei file modello<\/h2>\n<p>In precedenza, quando abbiamo impostato i supporti dei temi, abbiamo aggiunto il supporto per le immagini in primo piano. Con questo attivato ora possiamo produrre queste immagini nei nostri modelli. Facciamolo ora!<\/p>\n<p>Apri <code>index.php<\/code>e trova un posto per loro all&#8217;interno del circuito. Ho scelto di metterlo dopo il titolo, ma sta a te dove li vuoi. Utilizzare la funzione <code>the_post_thumbnail()<\/code>per emettere l&#8217;immagine. Si consiglia di verificare prima se il post ha anche impostato un&#8217;immagine in primo piano, cosa che facciamo utilizzando <code>has_post_thumbnail()<\/code>.<\/p>\n<pre><code>...\n    &lt;h2&gt;&lt;a href=\"&lt;?php the_permalink(); ?&gt;\" title=\"&lt;?php the_title(); ?&gt;\"&gt;&lt;?php the_title(); ?&gt;&lt;\/a&gt;&lt;\/h2&gt;\n    &lt;?php if (has_post_thumbnail()) {\n        the_post_thumbnail();\n    } ?&gt;\n    &lt;?php the_excerpt(); ?&gt;\n...<\/code><\/pre>\n<p>Se il tuo post non ha un&#8217;immagine in primo piano, non vedrai nulla in uscita dopo il titolo. Tuttavia, se imposti un&#8217;immagine in primo piano su uno dei tuoi post, <code>the_post_thumbnail()<\/code>verrebbe generato un <code>&lt;img&gt;<\/code>tag con l&#8217;immagine scelta. Questa funzione accetta alcuni parametri aggiuntivi. Ad esempio, puoi definire la dimensione dell&#8217;immagine che desideri utilizzare e controllare gli attributi aggiunti all&#8217;immagine. Come al solito ti incoraggio a dare una rapida occhiata alla <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_post_thumbnail\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentazione<\/a> e ad adattarti a tuo piacimento.<\/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\/load_theme_textdomain\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">load_theme_textdomain<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_stylesheet_directory\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_stylesheet_directory<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_theme_support\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_theme_support<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_filter\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aggiungi_filtro<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/is_front_page\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e8_prima_pagina<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_bloginfo\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_bloginfo<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/has_post_thumbnail\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">has_post_thumbnail<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_post_thumbnail\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la_miniatura_del_post<\/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 continua aggiungendo il codice di base necessario per impostare un tema WordPress. Impariamo ad aggiungere supporti per i temi e filtrare il titolo della prima pagina.<\/p>\n","protected":false},"author":1,"featured_media":224083,"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":["post-233789","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-sviluppatore","category-guida-per-principianti","category-n-a","category-php-6","category-soggetti","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233789","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=233789"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233789\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=233789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=233789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=233789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}