{"id":230276,"date":"2022-11-17T11:24:00","date_gmt":"2022-11-17T08:24:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230276"},"modified":"2022-11-09T20:55:23","modified_gmt":"2022-11-09T17:55:23","slug":"modelli-wordpress-per-principianti-legno","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/modelli-wordpress-per-principianti-legno\/","title":{"rendered":"Modelli WordPress per principianti: legno"},"content":{"rendered":"\n<p>Da quando ho parlato di modelli di WordPress, ho trattato alcuni diversi motori disponibili:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/viniwrubleski\/jade-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jade-PHP<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/cjonasw\/wordpress-starter-theme-mustache\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Baffi<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/zach-adams\/sprig-foundation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Rametto<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jenssegers\/blade\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Lama<\/a><\/li>\n<\/ul>\n<p>Se stai guardando Moustache, allora potresti essere interessato a Manubri, e se stai guardando Blade, ti consiglio vivamente di dare un&#8217;occhiata a <a href=\"https:\/\/roots.io\/sage\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sage<\/a> dal team <a href=\"https:\/\/roots.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Roots<\/a>.<\/p>\n<p>Ma per questo post finale, continuer\u00f2 con Timber, che \u00e8 quello che ho introdotto ieri. Non mi occupo tanto di quale viene utilizzato (poich\u00e9 tutti hanno i loro compromessi) purch\u00e9 sia \u200b\u200bcoerente.<\/p>\n<h2>Template WordPress: utilizzo del legname<\/h2>\n<p>Detto questo, ecco come puoi iniziare a utilizzare <a href=\"https:\/\/www.upstatement.com\/timber\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Timber<\/a> nei tuoi progetti.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ec006741.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-165381-61e77ec006741.png\" alt=\"Modelli WordPress per principianti: legno\" ><\/a><\/p>\n<p>Per iniziare, dovrai avere familiarit\u00e0 con Composer e avrai bisogno di una configurazione dell&#8217;ambiente di sviluppo locale. Se non hai nessuno di questi o hai bisogno di aiuto, allora ti ho coperto:<\/p>\n<ol>\n<li><a href=\"https:\/\/tommcfarlin.com\/laravel-valet-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Utilizzo di Laravel per lo sviluppo di WordPress<\/a><\/li>\n<li><a href=\"https:\/\/tommcfarlin.com\/tag\/configuring-composer-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Configurazione del compositore per WordPress<\/a><\/li>\n<\/ol>\n<p>Dopo aver eseguito i passaggi in ciascuna di queste guide, dovresti essere a posto. Quindi ecco cosa faremo.<\/p>\n<h3>1 Configurare un&#8217;installazione locale per il legname<\/h3>\n<p>User\u00f2 Valet per questo, il che significa che avr\u00f2 una directory con l&#8217;ultima versione di <a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a> (che \u00e8 4.8.3) installata nella sua directory.<\/p>\n<p>Ci\u00f2 significa che avr\u00f2 un database gi\u00e0 pronto per l&#8217;uso:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ec4380aa.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-165381-61e77ec4380aa.png\" alt=\"Modelli WordPress per principianti: legno\" ><\/a><\/p>\n<p>E avr\u00f2 emesso i seguenti comandi per configurare Laravel e un&#8217;installazione sicura (per imitare un ambiente di staging):<\/p>\n<pre><code>$ valet link\n$ valet secure<\/code><\/pre>\n<p>In modo da poter accedere al sito in un browser.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ec7806b6.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-165381-61e77ec7806b6.png\" alt=\"Modelli WordPress per principianti: legno\" ><\/a><\/p>\n<p>Per chi \u00e8 curioso, sto usando:<\/p>\n<ul>\n<li><a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a> 4.8.3<\/li>\n<li><a href=\"https:\/\/wordpress.org\/themes\/twentyfifteen\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">venticinque<\/a><\/li>\n<li>Pulisci i permalink<\/li>\n<\/ul>\n<p>E nessun altro plugin. \u00c8 solo un&#8217;installazione vanilla diversa da quella che vedi sopra.<\/p>\n<p>A questo punto sono pronto per installare Timber.<\/p>\n<h3>2 Installazione del legname<\/h3>\n<p>Supponendo che tu abbia seguito le guide sopra per Valet e Composer, dovresti essere a posto. Quindi, usando un terminale, vai alla directory di installazione di WordPress.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ecb7040b.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-165381-61e77ecb7040b.png\" alt=\"Modelli WordPress per principianti: legno\" ><\/a><\/p>\n<p>Quindi emettere il seguente comando:<\/p>\n<pre><code>$ composer require timber\/timber<\/code><\/pre>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ece8223b.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-165381-61e77ece8223b.png\" alt=\"Modelli WordPress per principianti: legno\" ><\/a><\/p>\n<p>Questo installer\u00e0 Timber, ma dovrai comunque aggiornare il file functions.php del tuo tema in modo che utilizzi correttamente il caricatore automatico di Composer.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ed28264d.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-165381-61e77ed28264d.png\" alt=\"Modelli WordPress per principianti: legno\" ><\/a><\/p>\n<p>Supponendo che tutto sia andato correttamente, dovresti essere in grado di aggiornare il tuo sito, navigare su qualsiasi post, pagina e cos\u00ec via e niente dovrebbe essere fuori servizio.<\/p>\n<h3>3 Inizializzazione del legname<\/h3>\n<p>Infine, \u00e8 il momento di utilizzare Timber per sostituire gran parte di ci\u00f2 che siamo abituati a vedere nel contesto di un modello WordPress.<\/p>\n<p>Sto optando per farlo all&#8217;interno <strong>di content-page.php<\/strong> per renderlo facile da seguire. Nota che il segmento di codice che sto modificando originariamente <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-04-content-page-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e8 simile a questo:<\/a><\/p>\n<pre><code>&lt;article id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;\n    &lt;?php\n        \/\/ Post thumbnail.\n        twentyfifteen_post_thumbnail();\n    ?&gt;\n\n    &lt;header class=\"entry-header\"&gt;\n        &lt;?php the_title( '&lt;h1 class=\"entry-title\"&gt;', '&lt;\/h1&gt;' ); ?&gt;\n    &lt;\/header&gt;&lt;!-- .entry-header --&gt;\n\n    &lt;div class=\"entry-content\"&gt;\n        &lt;?php the_content(); ?&gt;\n        &lt;?php\n            wp_link_pages( array(\n                'before'      =&gt; '&lt;div class=\"page-links\"&gt;&lt;span class=\"page-links-title\"&gt;'. __( 'Pages:', 'twentyfifteen' ). '&lt;\/span&gt;',\n                'after'       =&gt; '&lt;\/div&gt;',\n                'link_before' =&gt; '&lt;span&gt;',\n                'link_after'  =&gt; '&lt;\/span&gt;',\n                'pagelink'    =&gt; '&lt;span class=\"screen-reader-text\"&gt;'. __( 'Page', 'twentyfifteen' ). ' &lt;\/span&gt;%',\n                'separator'   =&gt; '&lt;span class=\"screen-reader-text\"&gt;, &lt;\/span&gt;',) );\n        ?&gt;\n    &lt;\/div&gt;&lt;!-- .entry-content --&gt;\n\n    &lt;?php edit_post_link( __( 'Edit', 'twentyfifteen' ), '&lt;footer class=\"entry-footer\"&gt;&lt;span class=\"edit-link\"&gt;', '&lt;\/span&gt;&lt;\/footer&gt;&lt;!-- .entry-footer --&gt;' ); ?&gt;\n\n&lt;\/article&gt;&lt;!-- #post-## --&gt;<\/code><\/pre>\n<p>In questo post, non ricreer\u00f2 completamente ci\u00f2 che vedi sopra, ma inizier\u00f2 con ci\u00f2 che \u00e8 necessario per iniziare a utilizzare un motore di modelli nel contesto di una base PHP.<\/p>\n<p>Innanzitutto, dovrai creare un modello che pu\u00f2 essere applicato alla pagina di esempio in un&#8217;installazione standard di WordPress. Ho chiamato il mio <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-05-template-timber-page-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">template-timber-page.php<\/a> e si presenta cos\u00ec:<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Template Name: Timber Template\n * Description: Replaces the standard page with a Timber template.\n *\/\n\n$timber  = new TimberTimber();\n$context = Timber::get_context();\n$post    = new TimberPost();\n\n$context['post'] = $post;\nTimber::render(\n  array( 'content-'. $post-&gt;post_name. '.twig', 'page.twig' ),\n  $context\n);\n<\/code><\/pre>\n<p>Nel codice sopra, ecco cosa sta succedendo:<\/p>\n<ol>\n<li>\u00a0Sto istanziando l&#8217;oggetto Timber.<\/li>\n<li>Quindi, sto ottenendo un contesto Timber. Il contesto contiene molte informazioni utili all&#8217;interno del modello (o del sito) a seconda di dove stai utilizzando il modello.<\/li>\n<li>Dopodich\u00e9, prendo un TimberPost che \u00e8 essenzialmente un&#8217;estensione di un post di WordPress. Ha i dati di WP_Post ma li rende disponibili ai nostri modelli.<\/li>\n<li>Successivamente, ho impostato l&#8217; indice del <strong>post dell&#8217;array<\/strong> <strong>$context<\/strong> con un riferimento al Timber Post (che ho chiamato <strong>$post<\/strong> ).<\/li>\n<li>Infine, dico a Timber di eseguire il rendering di una pagina chiamata <strong>content-sample-page.twig<\/strong> utilizzando il contesto specificato.<\/li>\n<\/ol>\n<p>\u00c8 qui che \u00e8 importante creare il file twig effettivo (che \u00e8 l&#8217;estensione del file modello Timber). Quindi ho creato <strong>content-sample-page.twig<\/strong> e si presenta <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-06-cotent-sample-page-twig\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cos\u00ec:<\/a><\/p>\n<pre><code>{% block content %}\n  &lt;article id=\"post-{{post.ID}}\" class=\"{{body_class}}\"&gt;\n\n    &lt;header class=\"entry-header\"&gt;\n      &lt;h1 class=\"article-h1\"&gt;{{post.title}}&lt;\/h1&gt;\n    &lt;\/header&gt;&lt;!-- .entry-header --&gt;\n\n    &lt;div class=\"entry-content\"&gt;\n        {{post.content}}\n    &lt;\/div&gt;&lt;!-- .entry-content --&gt;\n\n  &lt;\/article&gt;&lt;!-- #post-## --&gt;\n{% endblock %}\n<\/code><\/pre>\n<p>Dopo aver creato un&#8217;istanza dell&#8217;oggetto Timber e aver sostituito il codice che vedi sopra, noterai che il codice si legge in modo leggermente diverso (anche se non del tutto difficile da seguire).<\/p>\n<h3>4 Applicazione del modello<\/h3>\n<p>Per applicare il modello, vai a <strong>Pagine<\/strong> in WordPress. Individua la <strong>pagina di esempio<\/strong>, quindi, nel menu a discesa del modello, scegli quella che abbiamo appena creato utilizzando il titolo sopra:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ed87f4dc.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-165381-61e77ed87f4dc.png\" alt=\"Modelli WordPress per principianti: legno\" ><\/a><\/p>\n<p>Una volta fatto, puoi visualizzare il post. Noterai che sembra un po&#8217; nudo rispetto a quello che siamo abituati a vedere:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77eddccec8.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-165381-61e77eddccec8.png\" alt=\"Modelli WordPress per principianti: legno\" ><\/a><\/p>\n<p>Ma hai un&#8217;idea generale su come possiamo usare il contesto per accedere a molte delle stesse propriet\u00e0 che siamo abituati a vedere all&#8217;interno di WordPress senza dover sporcare il codice con markup e PHP e qualsiasi altra cosa siamo usati all&#8217;uso.<\/p>\n<h2>Pi\u00f9 risorse<\/h2>\n<p>So che questo \u00e8 prevalentemente un corso accelerato di creazione di modelli e non copre tanto quanto potrebbe. Poich\u00e9 questo post si avvicina a 1000 parole, ho bisogno di tracciare la linea da qualche parte, quindi sto optando per farlo qui.<\/p>\n<p>Questo non significa che ho finito di discuterne, per\u00f2. Ho intenzione di tornare su argomenti pi\u00f9 avanzati sulla creazione di modelli nei vasi futuri.<\/p>\n<p>Ma se sei interessato, ti consiglio vivamente di seguire sia la guida <a href=\"https:\/\/timber.github.io\/docs\/getting-started\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Getting tarted<\/a> per Timber che il progetto su <a href=\"https:\/\/github.com\/timber\/timber\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub<\/a>.<\/p>\n<p>Questo ti dar\u00e0 almeno un punto di partenza da cui puoi fare ancora pi\u00f9 progressi nei tuoi sforzi per creare un codice pi\u00f9 pulito e logicamente separato rispetto a quello che siamo abituati a vedere in WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&#8217;utilizzo di un motore come Timber pu\u00f2 aiutare a migliorare la separazione delle preoccupazioni nei modelli di WordPress. Ecco un esempio di come iniziare.<\/p>\n","protected":false},"author":1,"featured_media":165382,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,928,844,865],"tags":[1168],"class_list":["post-230276","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-soggetti","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230276","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=230276"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230276\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/165382"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}