{"id":230042,"date":"2022-11-17T18:52:00","date_gmt":"2022-11-17T15:52:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230042"},"modified":"2022-11-17T18:53:24","modified_gmt":"2022-11-17T15:53:24","slug":"wordpress-mallit-aloittelijoille-mitae-mallinnus-muuten-on","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-mallit-aloittelijoille-mitae-mallinnus-muuten-on\/","title":{"rendered":"WordPress-mallit aloittelijoille: Mit\u00e4 mallinnus muuten on?"},"content":{"rendered":"\n<p>Kun puhutaan mallista, sen WordPress-, JavaScript- tai jollain muulla kielell\u00e4 olevasta mallipohjasta, mielest\u00e4ni on hy\u00f6dyllist\u00e4 k\u00e4ytt\u00e4\u00e4 konkreettista projektia tai esimerkki\u00e4 sen toimivuuden l\u00e4pik\u00e4ymiseen sen sijaan, ett\u00e4 puhuisit siit\u00e4 esoteerisemmin.<\/p>\n<p>Jos et ole seurannut t\u00e4t\u00e4 sarjaa ja olet vasta aloittamassa mallintamisen, suosittelen lukemaan sarjan kaksi ensimm\u00e4ist\u00e4 osaa:<\/p>\n<ol>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-mallit-aloittelijoille-miten-se-on\/\" title=\"Kuinka se on\">Kuinka se on<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-mallit-aloittelijoille-html-kutsu-php\/\" title=\"HTML kutsuu PHP\">HTML kutsuu PHP<\/a><\/li>\n<\/ol>\n<p>T\u00e4st\u00e4 eteenp\u00e4in aiomme jakaa k\u00e4sitteen kahteen osaan:<\/p>\n<ol>\n<li>ymm\u00e4rt\u00e4\u00e4 mit\u00e4 malli on,<\/li>\n<li>miten mallinnus voi toimia WordPressiss\u00e4.<\/li>\n<\/ol>\n<p>Haasteena on tietysti se, ett\u00e4 meill\u00e4 on &quot;WordPress-malleja&quot;, ja sitten puhumme mallimoottorin k\u00e4ytt\u00e4misest\u00e4 WordPress-mallien muuttamiseen, miten ne toimivat, miten niihin sy\u00f6tet\u00e4\u00e4n tietoja ja niin edelleen.<\/p>\n<p>Mutta yrit\u00e4n parhaani mukaan selvent\u00e4\u00e4 jokaista osaa.<\/p>\n<h2>WordPress-mallit (mutta ei malleja)<\/h2>\n<p>Kun puhutaan mallista, on hy\u00f6dyllist\u00e4 saada toimiva m\u00e4\u00e4ritelm\u00e4 mallinnus- tai mallikoneille. Totuus on, ett\u00e4 mallintaminen tapahtuu mallintamiskoneella.<\/p>\n<h3>Toimiva m\u00e4\u00e4ritelm\u00e4<\/h3>\n<p>Mallimoottorin yleinen m\u00e4\u00e4ritelm\u00e4 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Template_processor\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">on<\/a> :<\/p>\n<blockquote>\n<p>Mallin prosessori (tunnetaan my\u00f6s mallimoottorina tai mallin j\u00e4sentimen\u00e4) on ohjelmisto, joka on suunniteltu yhdist\u00e4m\u00e4\u00e4n malleja tietomalliin tulosasiakirjojen tuottamiseksi.<\/p>\n<\/blockquote>\n<p>Ja vaikka se on tarkkaa, se on mielest\u00e4ni hieman sanallista tai monimutkaisempaa kuin on tarpeen yleisen k\u00e4sitteen selitt\u00e4miseen. Ehk\u00e4 voimme k\u00e4ytt\u00e4\u00e4 seuraavaa m\u00e4\u00e4ritelm\u00e4\u00e4:<\/p>\n<blockquote>\n<p>Mallimoottori k\u00e4ytt\u00e4\u00e4 syntaksia tietojen lis\u00e4\u00e4miseen asiakirjaan.<\/p>\n<\/blockquote>\n<p>T\u00e4m\u00e4 on todella yleist\u00e4, ja syvennymme PHP:hen hetkeksi, mutta halusin ensin antaa toimivan perusm\u00e4\u00e4ritelm\u00e4n ja sitten jatkaa siit\u00e4, koska mallia voidaan k\u00e4ytt\u00e4\u00e4 useilla eri kielill\u00e4.<\/p>\n<p>Lis\u00e4ksi on t\u00e4rke\u00e4\u00e4 tunnustaa, ett\u00e4 hyv\u00e4 mallikone tarjoaa usein turvatason, joustavuuden ja mahdollisesti jopa &quot;hiekkalaatikkotilan&quot;, josta testaamme koodin ennen sen k\u00e4ytt\u00f6\u00f6nottoa tuotantoon.<\/p>\n<h3>Milt\u00e4 mallinnus n\u00e4ytt\u00e4\u00e4?<\/h3>\n<p>Erilaisten syntaksien luonteen vuoksi mallinnus n\u00e4ytt\u00e4\u00e4 hieman erilaiselta, mutta yksi suosittu PHP-mallinnuskone on nimelt\u00e4\u00e4n <a href=\"https:\/\/twig.symfony.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Twig<\/a>. Joten konkreettinen esimerkki PHP-pohjaisista malleista, jotka k\u00e4ytt\u00e4v\u00e4t Twigia, voi n\u00e4ytt\u00e4\u00e4 suunnilleen <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-03-twig-example-twig\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4lt\u00e4:<\/a><\/p>\n<pre><code>{% extends \"base.twig\" %}\n{% block content %}\n    &lt;h1 class=\"big-title\"&gt;{{foo}}&lt;\/h1&gt;\n    &lt;h2&gt;{{post.title}}&lt;\/h2&gt;\n    &lt;img src=\"{{post.thumbnail.src}}\" \/&gt;\n    &lt;div class=\"body\"&gt; {{post.content}} &lt;\/div&gt;\n{% endblock %}<\/code><\/pre>\n<p>Kuten n\u00e4et, se on hieman eroa siit\u00e4, mit\u00e4 k\u00e4yt\u00e4mme merkint\u00f6jen, HTML:n, PHP-tunnisteiden ja muiden n\u00e4kemysten kanssa, vaikka mallimoottorille on edelleen ainutlaatuisia tageja.<\/p>\n<p>Silti, jos olet perehtynyt objektien k\u00e4sitteisiin, voit n\u00e4hd\u00e4, kuinka k\u00e4yt\u00e4t niit\u00e4 mallin kontekstissa k\u00e4ytt\u00e4m\u00e4ll\u00e4 pistemerkint\u00e4\u00e4 mieluummin kuin mit\u00e4 tahansa merkint\u00e4- tai funktiokutsuja, joihin olet tottunut k\u00e4ytt\u00e4m\u00e4\u00e4n PHP-asiakirjassa. .<\/p>\n<h2>Onko olemassa WordPress-mallinnuskoneita?<\/h2>\n<p>Kyll\u00e4 ja ei. Tarkoitan, ett\u00e4 on olemassa tapoja k\u00e4ytt\u00e4\u00e4 mallikoneita WordPressin yhteydess\u00e4, mutta en voi sanoa, ett\u00e4 WordPressille on olemassa lopullista mallipohjaa. Joitakin esimerkkej\u00e4 asioista, jotka kannattaa tarkistaa (ennen seuraavan postauksen lukemista):<\/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>Mutta on muitakin vaihtoehtoja.<\/p>\n<p>Mutta todenn\u00e4k\u00f6isesti k\u00e4yt\u00e4n jotain <a href=\"https:\/\/www.upstatement.com\/timber\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Timberin<\/a> kaltaista seuraavassa postauksessa.<\/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>WordPress-malleja voidaan tehd\u00e4 helpommaksi k\u00e4ytett\u00e4ess\u00e4 mallipohjaa. Mutta mik\u00e4 on mallimoottori ja mik\u00e4 rooli sill\u00e4 voi olla WordPressin kehityksess\u00e4?<\/p>\n","protected":false},"author":1,"featured_media":165473,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[927,719,917,843,864],"tags":[1166],"class_list":["post-230042","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aiheita","category-kehittaejae","category-muut","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230042","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=230042"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230042\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/165473"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=230042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=230042"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=230042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}