{"id":230052,"date":"2022-11-17T11:41:00","date_gmt":"2022-11-17T08:41:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230052"},"modified":"2022-11-09T19:53:30","modified_gmt":"2022-11-09T16:53:30","slug":"wordpress-mallit-aloittelijoille-puu","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-mallit-aloittelijoille-puu\/","title":{"rendered":"WordPress-mallit aloittelijoille: Puu"},"content":{"rendered":"\n<p>Sen j\u00e4lkeen kun puhuin WordPress-mallista, olen k\u00e4sitellyt joitain erilaisia \u200b\u200bsaatavilla olevia moottoreita:<\/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\">Viikset<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/zach-adams\/sprig-foundation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Oksa<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jenssegers\/blade\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ter\u00e4<\/a><\/li>\n<\/ul>\n<p>Jos katsot Moustachea, saatat olla kiinnostunut Ohjaustangoista, ja jos katsot Bladea, suosittelen tutustumaan <a href=\"https:\/\/roots.io\/sage\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sagen<\/a> <a href=\"https:\/\/roots.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Roots<\/a> &#8211; tiimiin.<\/p>\n<p>Mutta t\u00e4ss\u00e4 viimeisess\u00e4 postauksessa aion jatkaa Timberill\u00e4, jonka esittelin eilen. En ole niink\u00e4\u00e4n siit\u00e4, mit\u00e4 k\u00e4ytet\u00e4\u00e4n (koska niill\u00e4 kaikilla on kompromissinsa), kunhan se on johdonmukaista.<\/p>\n<h2>WordPress-malli: puun k\u00e4ytt\u00f6<\/h2>\n<p>N\u00e4in voit aloittaa <a href=\"https:\/\/www.upstatement.com\/timber\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Timberin<\/a> k\u00e4yt\u00f6n projekteissasi.<\/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=\"WordPress-mallit aloittelijoille: Puu\" ><\/a><\/p>\n<p>Aloitaksesi sinun on tunnettava Composer ja sinulla on oltava paikallinen kehitysymp\u00e4rist\u00f6. Jos sinulla ei ole kumpaakaan n\u00e4ist\u00e4 tai tarvitset apua, autan sinua:<\/p>\n<ol>\n<li><a href=\"https:\/\/tommcfarlin.com\/laravel-valet-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravelin k\u00e4ytt\u00e4minen WordPressin kehitt\u00e4miseen<\/a><\/li>\n<li><a href=\"https:\/\/tommcfarlin.com\/tag\/configuring-composer-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composerin m\u00e4\u00e4ritt\u00e4minen WordPressille<\/a><\/li>\n<\/ol>\n<p>Kun olet k\u00e4ynyt l\u00e4pi kunkin oppaan vaiheet, sinun pit\u00e4isi olla valmis. Joten t\u00e4ss\u00e4 on mit\u00e4 aiomme tehd\u00e4.<\/p>\n<h3>1 M\u00e4\u00e4rit\u00e4 paikallinen asennus puutavaralle<\/h3>\n<p>Aion k\u00e4ytt\u00e4\u00e4 Valetia t\u00e4h\u00e4n, mik\u00e4 tarkoittaa, ett\u00e4 minulla on hakemisto, jossa on uusin <a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a> -versio (joka on 4.8.3) asennettuna sen hakemistoon.<\/p>\n<p>T\u00e4m\u00e4 tarkoittaa, ett\u00e4 minulla on tietokanta jo valmiina k\u00e4ytt\u00f6\u00f6n:<\/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=\"WordPress-mallit aloittelijoille: Puu\" ><\/a><\/p>\n<p>Ja aion antaa seuraavat komennot Laravelin ja suojatun asennuksen asentamiseksi (j\u00e4ljittelem\u00e4\u00e4n lavastusymp\u00e4rist\u00f6\u00e4):<\/p>\n<pre><code>$ valet link\n$ valet secure<\/code><\/pre>\n<p>Jotta p\u00e4\u00e4sen sivustolle selaimella.<\/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=\"WordPress-mallit aloittelijoille: Puu\" ><\/a><\/p>\n<p>Niille, jotka ovat kiinnostuneita, k\u00e4yt\u00e4n:<\/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\">kaksikymment\u00e4viisitoista<\/a><\/li>\n<li>Puhdista pysyv\u00e4t linkit<\/li>\n<\/ul>\n<p>Eik\u00e4 muita liit\u00e4nn\u00e4isi\u00e4. Se on vain vanilja-asennus, muuta kuin mit\u00e4 yll\u00e4 n\u00e4et.<\/p>\n<p>T\u00e4ss\u00e4 vaiheessa olen valmis asentamaan Timberin.<\/p>\n<h3>2 Puun asennus<\/h3>\n<p>Olettaen, ett\u00e4 noudatit yll\u00e4 olevia Valet- ja Composer-ohjeita, sinun pit\u00e4isi olla valmis. Siirry p\u00e4\u00e4telaitteen avulla WordPress-asennushakemistoosi.<\/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=\"WordPress-mallit aloittelijoille: Puu\" ><\/a><\/p>\n<p>Anna sitten seuraava komento:<\/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=\"WordPress-mallit aloittelijoille: Puu\" ><\/a><\/p>\n<p>T\u00e4m\u00e4 asentaa Timberin, mutta sinun on silti p\u00e4ivitett\u00e4v\u00e4 teemasi functions.php-tiedosto, jotta se k\u00e4ytt\u00e4\u00e4 oikein Composerin automaattista latausohjelmaa.<\/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=\"WordPress-mallit aloittelijoille: Puu\" ><\/a><\/p>\n<p>Olettaen, ett\u00e4 kaikki on mennyt oikein, sinun pit\u00e4isi pysty\u00e4 p\u00e4ivitt\u00e4m\u00e4\u00e4n sivustosi, navigoimaan mahdollisille viesteille, sivuille ja niin edelleen, eik\u00e4 mik\u00e4\u00e4n saisi olla ep\u00e4kunnossa.<\/p>\n<h3>3 Puun alustaminen<\/h3>\n<p>Lopuksi on aika k\u00e4ytt\u00e4\u00e4 Timberi\u00e4 korvaamaan suuri osa siit\u00e4, mit\u00e4 olemme tottuneet n\u00e4kem\u00e4\u00e4n WordPress-mallin yhteydess\u00e4.<\/p>\n<p>P\u00e4\u00e4t\u00e4n tehd\u00e4 t\u00e4m\u00e4n <strong>sis\u00e4ll\u00f6n-page.php-sivulla<\/strong>, jotta sit\u00e4 olisi helppo seurata. Huomaa, ett\u00e4 muuttamani koodisegmentti <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-04-content-page-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">n\u00e4ytt\u00e4\u00e4 alun perin t\u00e4lt\u00e4:<\/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>T\u00e4ss\u00e4 viestiss\u00e4 en aio luoda t\u00e4ysin uudelleen sit\u00e4, mit\u00e4 n\u00e4et yll\u00e4, mutta aion aloittaa sen kanssa, mit\u00e4 tarvitaan mallimoottorin k\u00e4yt\u00f6n aloittamiseen PHP-s\u00e4\u00e4ti\u00f6n yhteydess\u00e4.<\/p>\n<p>Ensin sinun on luotava malli, jota voidaan k\u00e4ytt\u00e4\u00e4 mallisivulla tavallisessa WordPress-asennuksessa. Soitin <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-05-template-timber-page-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">omalleni template-timber-page.php<\/a> ja se n\u00e4ytt\u00e4\u00e4 t\u00e4lt\u00e4:<\/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>Yll\u00e4 olevassa koodissa tapahtuu seuraavaa:<\/p>\n<ol>\n<li>\u00a0Esit\u00e4n puuobjektin.<\/li>\n<li>Sitten saan puukontekstin. Konteksti sis\u00e4lt\u00e4\u00e4 paljon tietoa, joka on hy\u00f6dyllist\u00e4 mallissa (tai sivustossa) riippuen siit\u00e4, miss\u00e4 k\u00e4yt\u00e4t mallia.<\/li>\n<li>Sen j\u00e4lkeen nappaan TimberPostia, joka on pohjimmiltaan WordPress-viestin laajennus. Siin\u00e4 on WP_Postin tiedot, mutta se on k\u00e4ytett\u00e4viss\u00e4 malleissamme.<\/li>\n<li>Seuraavaksi asetin <strong>$context<\/strong> -taulukon viestihakemiston viittaamalla Timber- <strong>postiin<\/strong> (jota olen kutsunut nimell\u00e4 <strong>$post<\/strong> ).<\/li>\n<li>Lopuksi k\u00e4sken Timberi\u00e4 render\u00f6im\u00e4\u00e4n sivu nimelt\u00e4 <strong>content-sample-page.twig<\/strong> annettua kontekstia k\u00e4ytt\u00e4en.<\/li>\n<\/ol>\n<p>T\u00e4ss\u00e4 on t\u00e4rke\u00e4\u00e4 luoda varsinainen twig-tiedosto (joka on Timber-mallitiedoston p\u00e4\u00e4te). Joten loin <strong>content-sample-page.twig<\/strong> ja se n\u00e4ytt\u00e4\u00e4 <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-06-cotent-sample-page-twig\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4lt\u00e4:<\/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>Kun olet luonut Timber-objektin ja korvannut yll\u00e4 olevan koodin, huomaat, ett\u00e4 koodi lukee hieman eri tavalla (vaikkakaan ei ollenkaan vaikea seurata).<\/p>\n<h3>4 Mallin k\u00e4ytt\u00e4minen<\/h3>\n<p>Ota malli k\u00e4ytt\u00f6\u00f6n siirtym\u00e4ll\u00e4 WordPressin <strong>sivuille .<\/strong> Etsi <strong>mallisivu<\/strong> ja valitse mallipohjan pudotusvalikosta juuri luomamme k\u00e4ytt\u00e4m\u00e4ll\u00e4 yll\u00e4 olevaa otsikkoa:<\/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=\"WordPress-mallit aloittelijoille: Puu\" ><\/a><\/p>\n<p>Kun se on tehty, voit tarkastella julkaisua. Huomaat, ett\u00e4 se n\u00e4ytt\u00e4\u00e4 hieman alastomalta verrattuna siihen, mit\u00e4 olemme tottuneet n\u00e4kem\u00e4\u00e4n:<\/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=\"WordPress-mallit aloittelijoille: Puu\" ><\/a><\/p>\n<p>Mutta saat yleisen k\u00e4sityksen siit\u00e4, kuinka voimme k\u00e4ytt\u00e4\u00e4 kontekstia p\u00e4\u00e4st\u00e4ksemme moniin samoihin ominaisuuksiin, jotka olemme tottuneet n\u00e4kem\u00e4\u00e4n WordPressiss\u00e4 ilman, ett\u00e4 joudumme t\u00e4ytt\u00e4m\u00e4\u00e4n koodia merkinn\u00f6ill\u00e4 ja PHP:ll\u00e4 ja kaikilla muilla k\u00e4ytt\u00e4mill\u00e4mme k\u00e4ytt\u00f6\u00f6n.<\/p>\n<h2>Lis\u00e4\u00e4 resursseja<\/h2>\n<p>Tied\u00e4n, ett\u00e4 t\u00e4m\u00e4 on p\u00e4\u00e4asiassa mallintamisen pikakurssi, eik\u00e4 se kata l\u00e4hesk\u00e4\u00e4n niin paljon kuin voisi. Kun t\u00e4m\u00e4 viesti l\u00e4hestyy 1000 sanaa, minun on vedett\u00e4v\u00e4 raja jonnekin, joten p\u00e4\u00e4t\u00e4n tehd\u00e4 sen t\u00e4ss\u00e4.<\/p>\n<p>T\u00e4m\u00e4 ei kuitenkaan tarkoita, ett\u00e4 olisin lopettanut keskustelun. Aion palata tulevissa ruukuissa edistyneempiin aiheisiin, jotka liittyv\u00e4t mallintamiseen.<\/p>\n<p>Mutta jos olet kiinnostunut, suosittelen seuraamaan sek\u00e4 <a href=\"https:\/\/timber.github.io\/docs\/getting-started\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Getting tarted -opasta<\/a> Timberille ett\u00e4 projektia <a href=\"https:\/\/github.com\/timber\/timber\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHubissa<\/a>.<\/p>\n<p>T\u00e4m\u00e4 antaa sinulle ainakin l\u00e4ht\u00f6kohdan, josta voit edisty\u00e4 entist\u00e4 enemm\u00e4n pyrkimyksiss\u00e4si luoda puhtaampaa, loogisemmin erillist\u00e4 koodia kuin mit\u00e4 olemme tottuneet n\u00e4kem\u00e4\u00e4n WordPressiss\u00e4.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Timberin kaltaisen moottorin k\u00e4ytt\u00e4minen voi auttaa parantamaan huolenaiheiden erottelua WordPress-malleissa. T\u00e4ss\u00e4 on esimerkki alkuun p\u00e4\u00e4semisest\u00e4.<\/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":[927,895,843,864],"tags":[1166],"class_list":["post-230052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aiheita","category-koodi","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=230052"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230052\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/165382"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=230052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=230052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=230052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}