{"id":229364,"date":"2022-11-17T18:59:00","date_gmt":"2022-11-17T15:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229364"},"modified":"2022-11-17T19:03:18","modified_gmt":"2022-11-17T16:03:18","slug":"szablony-wordpress-dla-poczatkujacych-co-to-jest-szablonowanie","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/szablony-wordpress-dla-poczatkujacych-co-to-jest-szablonowanie\/","title":{"rendered":"Szablony WordPress dla pocz\u0105tkuj\u0105cych: co to jest szablonowanie?"},"content":{"rendered":"\n<p>M\u00f3wi\u0105c o szablonach, je\u015bli chodzi o szablony WordPress, szablony JavaScript lub szablony w innym j\u0119zyku, my\u015bl\u0119, \u017ce warto u\u017cy\u0107 konkretnego projektu lub przyk\u0142adu, aby om\u00f3wi\u0107, jak to dzia\u0142a, zamiast m\u00f3wi\u0107 o tym w bardziej ezoteryczny spos\u00f3b.<\/p>\n<p>Je\u015bli nie \u015bledzi\u0142e\u015b tej serii i dopiero zaczynasz tworzy\u0107 szablony, polecam przeczytanie dw\u00f3ch pierwszych cz\u0119\u015bci serii:<\/p>\n<ol>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/szablony-wordpress-dla-poczatkujacych-jak-to-jest\/\" title=\"Jak to jest\">Jak to jest<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/szablony-wordpress-dla-poczatkujacych-html-wywolanie-php\/\" title=\"HTML Wywo\u0142anie PHP\">HTML Wywo\u0142anie PHP<\/a><\/li>\n<\/ol>\n<p>Nast\u0119pnie podzielimy koncepcj\u0119 na dwie cz\u0119\u015bci:<\/p>\n<ol>\n<li>zrozumienie czym jest szablonowanie,<\/li>\n<li>jak szablonowanie mo\u017ce dzia\u0142a\u0107 w WordPressie.<\/li>\n<\/ol>\n<p>Wyzwanie polega oczywi\u015bcie na tym, \u017ce mamy \u201eszablony WordPress&quot;, a nast\u0119pnie m\u00f3wimy o u\u017cyciu silnika szablon\u00f3w do zmiany szablon\u00f3w WordPress, sposobu ich dzia\u0142ania, sposobu wstrzykiwania do nich danych i tak dalej.<\/p>\n<p>Ale zrobi\u0119 co w mojej mocy, aby wyja\u015bni\u0107 ka\u017cd\u0105 cz\u0119\u015b\u0107.<\/p>\n<h2>Szablony WordPress (ale nie szablony)<\/h2>\n<p>Je\u015bli chodzi o m\u00f3wienie o szablonowaniu, pomocne jest posiadanie dzia\u0142aj\u0105cej definicji szablon\u00f3w lub silnik\u00f3w szablon\u00f3w. Prawda jest taka, \u017ce \u200b\u200btworzenie szablon\u00f3w odbywa si\u0119 za pomoc\u0105 silnika szablon\u00f3w.<\/p>\n<h3>Robocza definicja<\/h3>\n<p>Og\u00f3lna definicja silnika szablon\u00f3w <a href=\"https:\/\/en.wikipedia.org\/wiki\/Template_processor\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">to<\/a> :<\/p>\n<blockquote>\n<p>Procesor szablon\u00f3w (znany r\u00f3wnie\u017c jako silnik szablon\u00f3w lub parser szablon\u00f3w) to oprogramowanie zaprojektowane do \u0142\u0105czenia szablon\u00f3w z modelem danych w celu tworzenia dokument\u00f3w wynikowych.<\/p>\n<\/blockquote>\n<p>I chocia\u017c to prawda, jest troch\u0119 rozwlek\u0142y lub bardziej z\u0142o\u017cony ni\u017c jest to moim zdaniem konieczne, ni\u017c jest to konieczne do wyja\u015bnienia og\u00f3lnej koncepcji. Mo\u017ce uda nam si\u0119 wypracowa\u0107 nast\u0119puj\u0105c\u0105 definicj\u0119:<\/p>\n<blockquote>\n<p>Silnik szablon\u00f3w u\u017cywa sk\u0142adni do wstrzykiwania danych do dokumentu.<\/p>\n<\/blockquote>\n<p>To jest naprawd\u0119 og\u00f3lne i za chwil\u0119 zag\u0142\u0119bimy si\u0119 w PHP, ale najpierw chcia\u0142em poda\u0107 podstawow\u0105, dzia\u0142aj\u0105c\u0105 definicj\u0119, a nast\u0119pnie przej\u015b\u0107 od tego, poniewa\u017c szablony mog\u0105 by\u0107 u\u017cywane w wielu r\u00f3\u017cnych j\u0119zykach.<\/p>\n<p>Co wi\u0119cej, wa\u017cne jest, aby pami\u0119ta\u0107, \u017ce dobry silnik szablon\u00f3w cz\u0119sto zapewnia poziom bezpiecze\u0144stwa, elastyczno\u015b\u0107, a potencjalnie nawet \u201etryb piaskownicy&#8221;, z kt\u00f3rego testujemy kod przed wdro\u017ceniem go w \u015brodowisku produkcyjnym.<\/p>\n<h3>Jak wygl\u0105da tworzenie szablon\u00f3w?<\/h3>\n<p>Ze wzgl\u0119du na r\u00f3\u017cn\u0105 sk\u0142adni\u0119 szablony b\u0119d\u0105 wygl\u0105da\u0107 nieco inaczej, ale jeden popularny silnik szablon\u00f3w PHP nazywa si\u0119 <a href=\"https:\/\/twig.symfony.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Twig<\/a>. Konkretny przyk\u0142ad szablon\u00f3w opartych na PHP, kt\u00f3re u\u017cywaj\u0105 Twiga, mo\u017ce wygl\u0105da\u0107 mniej wi\u0119cej <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-03-twig-example-twig\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tak:<\/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>Jak wida\u0107, to troch\u0119 r\u00f3\u017cni si\u0119 od tego, czego u\u017cywamy, do znacznik\u00f3w, znacznik\u00f3w HTML, PHP itd., chocia\u017c wci\u0105\u017c istniej\u0105 znaczniki unikalne dla silnika szablon\u00f3w.<\/p>\n<p>Mimo to, je\u015bli znasz koncepcje obiekt\u00f3w, mo\u017cesz zobaczy\u0107, jak uzyska\u0107 do nich dost\u0119p w kontek\u015bcie szablonu za pomoc\u0105 notacji z kropkami, a nie jakiejkolwiek notacji lub wywo\u0142a\u0144 funkcji, kt\u00f3rych u\u017cywasz w dokumencie PHP .<\/p>\n<h2>Czy istniej\u0105 silniki szablon\u00f3w WordPress?<\/h2>\n<p>Tak i nie. Chodzi mi o to, \u017ce istniej\u0105 sposoby na wykorzystanie silnik\u00f3w szablon\u00f3w w kontek\u015bcie WordPressa, ale nie mog\u0119 powiedzie\u0107, \u017ce istnieje definitywny szablon dla WordPressa. Niekt\u00f3re z przyk\u0142ad\u00f3w rzeczy, kt\u00f3re mo\u017cesz chcie\u0107 sprawdzi\u0107 (przed przeczytaniem nast\u0119pnego posta), to:<\/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\">W\u0105sy<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/zach-adams\/sprig-foundation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ga\u0142\u0105zka<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jenssegers\/blade\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ostrze<\/a><\/li>\n<\/ul>\n<p>Ale s\u0105 inne opcje.<\/p>\n<p>Ale prawdopodobnie u\u017cyj\u0119 czego\u015b takiego jak <a href=\"https:\/\/www.upstatement.com\/timber\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Timber<\/a> w nast\u0119pnym po\u015bcie.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Szablony WordPress mo\u017cna upro\u015bci\u0107, korzystaj\u0105c z silnika szablon\u00f3w. Ale czym jest silnik szablon\u00f3w i jak\u0105 rol\u0119 mo\u017ce odegra\u0107 w rozwoju WordPressa?<\/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":[721,919,845,929,866],"tags":[1169],"class_list":["post-229364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-inny","category-samouczki","category-tematy","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=229364"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/165473"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=229364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=229364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=229364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}