{"id":229248,"date":"2022-11-17T19:09:00","date_gmt":"2022-11-17T16:09:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229248"},"modified":"2022-11-17T19:09:16","modified_gmt":"2022-11-17T16:09:16","slug":"wordpress-mallar-foer-nyboerjare-vad-aer-mall-aendaa","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/wordpress-mallar-foer-nyboerjare-vad-aer-mall-aendaa\/","title":{"rendered":"WordPress-mallar f\u00f6r nyb\u00f6rjare: Vad \u00e4r mall, \u00e4nd\u00e5?"},"content":{"rendered":"\n<p>N\u00e4r vi pratar om mallar, om det \u00e4r WordPress-mall, JavaScript-mall eller mall p\u00e5 n\u00e5got annat spr\u00e5k, tror jag att det \u00e4r bra att anv\u00e4nda ett konkret projekt eller exempel f\u00f6r att g\u00e5 igenom hur det fungerar snarare \u00e4n att prata om det i mer esoteriska termer.<\/p>\n<p>Om du inte har f\u00f6ljt med den h\u00e4r serien och du precis har b\u00f6rjat med att malla, rekommenderar jag att du l\u00e4ser de tv\u00e5 f\u00f6rsta delarna av serien:<\/p>\n<ol>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/wordpress-mallar-foer-nyboerjare-hur-det-aer\/\" title=\"Hur det \u00e4r\">Hur det \u00e4r<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/wordpress-mallar-foer-nyboerjare-html-calling-php\/\" title=\"HTML anropar PHP\">HTML anropar PHP<\/a><\/li>\n<\/ol>\n<p>D\u00e4rifr\u00e5n kommer vi att dela upp konceptet i tv\u00e5 delar:<\/p>\n<ol>\n<li>f\u00f6rst\u00e5 vad mall \u00e4r,<\/li>\n<li>hur mallar kan fungera i WordPress.<\/li>\n<\/ol>\n<p>Utmaningen kommer f\u00f6rst\u00e5s i att vi har &quot;WordPress-mallar&quot; och d\u00e5 pratar vi om att anv\u00e4nda en mallmotor f\u00f6r att \u00e4ndra WordPress-mallar, hur de fungerar, hur data injiceras i dem, och s\u00e5 vidare.<\/p>\n<p>Men jag ska g\u00f6ra mitt b\u00e4sta f\u00f6r att f\u00f6rs\u00f6ka f\u00f6rtydliga varje del.<\/p>\n<h2>WordPress-mallar (men inte mallar)<\/h2>\n<p>N\u00e4r det kommer till att prata om mallar \u00e4r det bra att ha en fungerande definition av mall- eller mallmotorer. Sanningen \u00e4r att alla mallar g\u00f6rs av en mallmotor.<\/p>\n<h3>En fungerande definition<\/h3>\n<p>En allm\u00e4n definition av en mallmotor <a href=\"https:\/\/en.wikipedia.org\/wiki\/Template_processor\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e4r<\/a> :<\/p>\n<blockquote>\n<p>En mallprocessor (\u00e4ven k\u00e4nd som en mallmotor eller mallparser) \u00e4r en programvara utformad f\u00f6r att kombinera mallar med en datamodell f\u00f6r att producera resultatdokument.<\/p>\n<\/blockquote>\n<p>Och \u00e4ven om det \u00e4r korrekt, \u00e4r det lite ordrikt eller mer komplext \u00e4n n\u00f6dv\u00e4ndigt, enligt min mening, \u00e4n n\u00f6dv\u00e4ndigt f\u00f6r att f\u00f6rklara det allm\u00e4nna konceptet. Kanske kan vi arbeta bort f\u00f6ljande definition:<\/p>\n<blockquote>\n<p>En mallmotor anv\u00e4nder syntax f\u00f6r att injicera data i ett dokument.<\/p>\n<\/blockquote>\n<p>Detta \u00e4r verkligen allm\u00e4nt, och vi kommer att g\u00e5 ner i PHP ett \u00f6gonblick, men f\u00f6rst ville jag ge en grundl\u00e4ggande, fungerande definition och sedan g\u00e5 d\u00e4rifr\u00e5n, n\u00e4mligen f\u00f6r att mallar kan anv\u00e4ndas p\u00e5 en m\u00e4ngd olika spr\u00e5k.<\/p>\n<p>Vidare \u00e4r det viktigt att inse att en bra mallmotor ofta ger en niv\u00e5 av s\u00e4kerhet, flexibilitet och potentiellt till och med ett &quot;sandl\u00e5del\u00e4ge&quot; d\u00e4r vi testar koden innan vi distribuerar den till produktion.<\/p>\n<h3>Hur ser mall ut?<\/h3>\n<p>P\u00e5 grund av den olika syntaxens natur kommer mallbildning att se lite annorlunda ut, men en popul\u00e4r PHP-mallmotor heter <a href=\"https:\/\/twig.symfony.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Twig<\/a>. S\u00e5 ett konkret exempel p\u00e5 PHP-baserade mallar som anv\u00e4nder Twig kan se ut ungef\u00e4r <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-03-twig-example-twig\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">s\u00e5 h\u00e4r:<\/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>Som du kan se \u00e4r det lite skillnad fr\u00e5n vad vi anv\u00e4nder till att se med uppm\u00e4rkning, HTML, PHP-taggar och s\u00e5 vidare, \u00e4ven om det fortfarande finns taggar som \u00e4r unika f\u00f6r mallmotorn.<\/p>\n<p>\u00c4nd\u00e5, om du \u00e4r bekant med begreppen objekt, kan du se hur du kommer \u00e5t dem inom ramen f\u00f6r mallen med hj\u00e4lp av punktnotation snarare \u00e4n vilken notation eller funktionsanrop du \u00e4r van vid att anv\u00e4nda i ett PHP-dokument .<\/p>\n<h2>Finns det WordPress-mallmotorer?<\/h2>\n<p>Ja och nej. Jag menar att det finns s\u00e4tt att anv\u00e4nda mallmotorer inom WordPress, men jag kan inte s\u00e4ga att det finns en definitiv mall f\u00f6r WordPress. N\u00e5gra av exemplen p\u00e5 saker du kanske vill kolla in (innan du l\u00e4ser n\u00e4sta inl\u00e4gg) \u00e4r:<\/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\">Mustasch<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/zach-adams\/sprig-foundation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Kvist<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jenssegers\/blade\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Blad<\/a><\/li>\n<\/ul>\n<p>Men det finns andra alternativ.<\/p>\n<p>Men jag kommer f\u00f6rmodligen att anv\u00e4nda n\u00e5got som <a href=\"https:\/\/www.upstatement.com\/timber\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Timber<\/a> f\u00f6r n\u00e4sta inl\u00e4gg.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <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-mallar kan g\u00f6ras enklare n\u00e4r du anv\u00e4nder en mallmotor. Men vad \u00e4r en mallmotor och vilken roll kan den spela i WordPress-utveckling?<\/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":[932,848,922,724,868],"tags":[1173],"class_list":["post-229248","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aemnen","category-handledningar","category-oevrig","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=229248"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229248\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/165473"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=229248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=229248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=229248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}