{"id":231438,"date":"2023-01-04T13:04:00","date_gmt":"2023-01-04T10:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231438"},"modified":"2022-12-25T21:42:55","modified_gmt":"2022-12-25T18:42:55","slug":"funktsioonide-ja-kohustuslike-pistikprogrammide-kohta","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/funktsioonide-ja-kohustuslike-pistikprogrammide-kohta\/","title":{"rendered":"Funktsioonide ja kohustuslike pistikprogrammide kohta"},"content":{"rendered":"\n<p>Olen t\u00f6\u00f6tanud v\u00e4ikese projekti, pigem veebirakenduse kui saidi kallal, mis n\u00f5uab nii kohandatud teema kui ka tihedalt seotud, kuid v\u00e4ga spetsiifilise funktsionaalsuse v\u00e4ljat\u00f6\u00f6tamist.<\/p>\n<p>See on v\u00e4ga kitsa fookusega projekt (millest ma t\u00f5en\u00e4oliselt kunagi tulevikus r\u00e4\u00e4gin), kuid selle kallal t\u00f6\u00f6tades sundis see mind veidi tagasi p\u00f6\u00f6rduma WordPressi arenduse teemaarenduse poole.<\/p>\n<p>Ei, ma ei kujunda \u2013 \u00f5nneks \u2013, kuid pean t\u00f6\u00f6tama teemade kohandamisega funktsionaalsest vaatenurgast. Seda tehes on see aga pannud mind uuesti l\u00e4bi vaatama n\u00f5utud <code>functions.php<\/code>ja m\u00f5ned kaalutlused, mida mul pole kunagi varem olnud.<\/p>\n<p>Lisaks on see pannud mind s\u00fcgavamalt uurima nende kasutamist <code>mu-plugins<\/code>ja k\u00fcsima, millal need on vajalikud ja miks ma pole neid varem rohkem kasutanud (v\u00f5i isegi siis, kui neid t\u00f5esti vaja oleks).<\/p>\n<p>Nii et ma hakkan selles osas veidi luuletama.<\/p>\n<pre><code>TL;DR<\/code><\/pre>\n<p>Kui ma teemaarendust tegin, <code>functions.php<\/code>kasutati seda kahe asja jaoks (mis on iseenesest problemaatiline), kuid siiski:<\/p>\n<ol>\n<li>teemade funktsioonide lubamiseks v\u00f5i keelamiseks,<\/li>\n<li>teemaspetsiifiliste funktsioonide m\u00e4\u00e4ratlemiseks.<\/li>\n<\/ol>\n<p>Teemaarendaja <a href=\"https:\/\/developer.wordpress.org\/themes\/basics\/theme-functions\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">k\u00e4siraamatus<\/a> on kirjas:<\/p>\n<blockquote>\n<p>See <code>functions.php<\/code>fail on koht, kus saate oma WordPressi teemale unikaalseid funktsioone lisada. Seda saab kasutada WordPressi p\u00f5hifunktsioonidega \u00fchendamiseks, et muuta teie teema modulaarsemaks, laiendatavamaks ja funktsionaalsemaks.<\/p>\n<p>Teemafunktsioonid, Teemaarendaja k\u00e4siraamat<\/p>\n<\/blockquote>\n<p>Ja ma saan sellest aru, kuid minu vaatenurgast ja WordPressi arenedes arvan, et see <code>functions.php<\/code>peaks olema p\u00fchendatud teemaspetsiifilistele funktsioonidele asjades, mis haakuvad otse tuumaga, n\u00e4iteks:<\/p>\n<ul>\n<li>kohandaja funktsionaalsus,<\/li>\n<li>men\u00fc\u00fc funktsionaalsus,<\/li>\n<li>stsenaariumi ja stiili registreerimine,<\/li>\n<li>ja nii edasi.<\/li>\n<\/ul>\n<p>Aga kui mingi konksu ajal peab midagi t\u00f6\u00f6tama ja see on pigem domeenispetsiifilise loogika p\u00f5him\u00f5te, siis see ei <strong>kuulu<\/strong> sellesse faili.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158759-61e6e52f7b3b5.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-158759-61e6e52f7b3b5.png\" alt=\"Funktsioonide ja kohustuslike pistikprogrammide kohta\" ><\/a><\/p>\n<p>See t\u00f5statab aga k\u00fcsimuse: kus asuvad domeenispetsiifilised funktsioonid?<\/p>\n<h3>Sisestage Must-Use Pluginad<\/h3>\n<p>Tean, et sellised asjad nagu <code>inc<\/code>kataloogid muutuvad \u00fcha tavalisemaks, kuid teemaarendusest r\u00e4\u00e4kides ei muretse ma nende p\u00e4rast, eriti kui teemaarendus pole minu t\u00e4helepanu keskmes ja konkreetne kataloogistruktuur pole minu stiil.<\/p>\n<p>Igatahes, kui r\u00e4\u00e4kida v\u00e4ga spetsialiseeritud lahendustest (kus lahendus on esitluse ja tihedalt keskendunud funktsionaalsuse kombinatsioon), hakkan m\u00f5tlema <code>mu-plugins<\/code>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158759-61e6e536dbfe7.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-158759-61e6e536dbfe7.png\" alt=\"Funktsioonide ja kohustuslike pistikprogrammide kohta\" ><\/a><\/p>\n<p>Ja p\u00f5hjus, miks ma standardse WordPressi pistikprogrammi peale ei m\u00f5tle, on see, et need on \u00fcldiselt loodud t\u00f6\u00f6tama mis tahes teemaga ja lisama funktsioone. Mitte nii <code>mu-plugins<\/code>.<\/p>\n<blockquote>\n<p>Must-use pluginad (teise nimega mu-pluginad) on pluginad, mis on installitud spetsiaalsesse kataloogi sisukausta sees ja mis lubatakse automaatselt k\u00f5igil installisaitidel.<\/p>\n<p><a href=\"https:\/\/wordpress.org\/support\/article\/must-use-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Must-Use Pluginad<\/a>, WordPress.org<\/p>\n<\/blockquote>\n<p>Nii et siin on minu m\u00f5ttek\u00e4ik:<\/p>\n<ol>\n<li>Teemad on ettekandmiseks<\/li>\n<li>Pluginad on funktsionaalsuse jaoks.<\/li>\n<li>Pluginad on loodud kasutamiseks olenemata teemast ja kogu saidi laiuses.<\/li>\n<li>Must-Use Pluginad on pistikprogrammid, mis on vaikimisi lubatud ja kasutusel<\/li>\n<li>Seet\u00f5ttu peaks spetsialiseeritud lahenduse domeenispetsiifiline loogika asuma kohustuslikus pistikprogrammis.<\/li>\n<\/ol>\n<p>Muidugi v\u00f5ib v\u00e4ita, et m\u00f5ned teemad v\u00f5ivad vajada kohustuslikku funktsionaalsust, kuid kas see ei sobi siiski m\u00f5ttega, et funktsionaalsus peaks asuma kohustuslikus pistikprogrammis?<\/p>\n<p>Olenemata sellest, l\u00e4henemisviis, mida ma olen j\u00e4rginud, on j\u00e4rgmine:<\/p>\n<ol>\n<li>Funktsionaalsus, mis seob konkreetselt teemafunktsioonid WordPressi tuumaga, l\u00e4heb <code>functions.php<\/code>.<\/li>\n<li>Funktsionaalsus, mis on domeeniloogika, kuid n\u00f5uab, et kogu lahendus t\u00f6\u00f6taks, asub <code>mu-plugin<\/code>.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/tommcfarlin.com\/from-self-employment-to-employment-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Oma karj\u00e4\u00e4ri<\/a> praegusel hetkel ei tee ma palju t\u00f6\u00f6d, mis keskenduks millelegi muule peale taustaprogrammi, kuid harvadel v\u00f5imalustel, mil mul tuleb oma t\u00f6\u00f6d laiendada, avastan, et p\u00fc\u00fcan ikka veel olla. anal\u00fc\u00fctiline ja l\u00e4bim\u00f5eldud selle \u00fcle, kuidas ma projekti \u00fcles ehitan.<\/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>Funktsioonid ja kohustuslikud pistikprogrammid v\u00e4\u00e4rivad t\u00e4helepanu, eriti kui luuakse v\u00e4ga spetsiifilisi lahendusi.<\/p>\n","protected":false},"author":1,"featured_media":158760,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,916,842,802,863],"tags":[1165],"class_list":["post-231438","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-muud","category-opetused","category-php-4","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=231438"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231438\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/158760"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=231438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=231438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=231438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}