{"id":230759,"date":"2022-12-17T09:26:00","date_gmt":"2022-12-17T06:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230759"},"modified":"2022-12-07T11:44:02","modified_gmt":"2022-12-07T08:44:02","slug":"wordpressi-vidinad-uembertoeoetamine-5-osa","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-vidinad-uembertoeoetamine-5-osa\/","title":{"rendered":"WordPressi vidinad: \u00fcmbert\u00f6\u00f6tamine, 5. osa"},"content":{"rendered":"\n<p><strong><a href=\"https:\/\/tommcfarlin.com\/wordpress-widgets-part-4\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Eelmises postituses<\/a><\/strong> l\u00f5ime registri, mida kasutatakse k\u00f5igi meie vidina funktsionaalsuse andmise eest vastutavate erinevate klasside salvestamiseks.<\/p>\n<p>Selleks tutvustatakse mitmesuguseid muid klasse, kuid enne sinna minekut peame lisama plugina alglaadimisribale registri (r\u00e4\u00e4kimata pistikprogrammi alglaadimisseadme loomisest).<\/p>\n<p>T\u00e4psemalt, siin me pooleli j\u00e4ime:<\/p>\n<blockquote>\n<p>Nagu postituses varem mainitud, peame selle lisama pistikprogrammi alglaadimisribale. Selleks peame aga m\u00e4\u00e4ratlema oma filtri, et saaksime registrit h\u00f5lpsalt \u00fclej\u00e4\u00e4nud pistikprogrammist m\u00f6\u00f6da saata (kui selleks on aeg).<\/p>\n<\/blockquote>\n<p>Nii et selles postituses keskendume just sellele.<\/p>\n<h2>WordPressi vidina katlaplaat: \u00fcmberkujundamine, 5. osa<\/h2>\n<p>Kui olete seeriat siiani j\u00e4lginud, peaksite olema spetsiaalselt registri lisamiseks heas positsioonis, et meil oleks sellele juurdep\u00e4\u00e4s kogu pistikprogrammi v\u00e4ltel.<\/p>\n<p>Selleks aga eeldate, et teate, kuidas filtreid m\u00e4\u00e4ratleda. WordPressis <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kasutame toiminguid ja filtreid kogu aeg<\/a>.<\/p>\n<p>Nende konksude puhul on aga see, et need on juba m\u00e4\u00e4ratletud. Niisiis, kuidas me oma filtrit m\u00e4\u00e4ratleme?<\/p>\n<p>Vaatame, kuidas t\u00e4pselt seda teha.<\/p>\n<h3>1 Meie filtri m\u00e4\u00e4ratlemine<\/h3>\n<p>Esiteks peame m\u00f5istma m\u00f5nda m\u00f5istet:<\/p>\n<ul>\n<li>mis on filter,<\/li>\n<li>kuidas filtrit lisada,<\/li>\n<li>kuidas lisada meie register filtrisse<\/li>\n<li>kuidas klassi filtrist alla laadida.<\/li>\n<\/ul>\n<p>\u00d5nneks on k\u00f5ike \u00fclaltoodut lihtne seletada.<\/p>\n<h4>Mis on filter?<\/h4>\n<p>Lihtsamalt \u00f6eldes v\u00f5imaldavad konksud meil programmi t\u00e4itmise ajal teatud aegadel WordPressi helistada. Tegevused on tavaliselt reserveeritud k\u00e4itumisele; Filtrid on reserveeritud andmete jaoks.<\/p>\n<p>Lisaks v\u00f5imaldavad filtrid t\u00f6\u00f6tada rakenduses konkreetsete andmetega \u2013 need v\u00f5ivad olla juba olemasolevad andmed v\u00f5i isegi uued andmed. Ja meie puhul on see registriklass, mis sisaldab viiteid teistele andmetele.<\/p>\n<h4>Filtri lisamine<\/h4>\n<p>Filtri lisamine on lihtne. Sellel on kolm osa:<\/p>\n<ol>\n<li>kutsudes <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_filter\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_filter<\/a> ,<\/li>\n<li>filtri kordumatu identifikaatori m\u00e4\u00e4ratlemine,<\/li>\n<li>edastab filtrisse teavet, mida saab alati tagasi kutsuda.<\/li>\n<\/ol>\n<p>Meie jaoks tuvastan meie registri <strong>wpWidgetRegistry<\/strong> filtrina. Arvestage siiski, et on oluline valida oma juurutamisele kordumatu nimi, sest kui te seda ei tee, v\u00f5ite sattuda kokkup\u00f5rkeni muude andmetega, kui m\u00f5ni teine \u200b\u200bpistikprogramm kasutab sama tuvastatut.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161108-61e71bc432bb7.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-161108-61e71bc432bb7.png\" alt=\"WordPressi vidinad: \u00fcmbert\u00f6\u00f6tamine, 5. osa\" ><\/a><\/p>\n<p>Igatahes t\u00e4idab filtri lisamine lihtsa \u00fclesande:<\/p>\n<blockquote>\n<p>\u00dchendage funktsioon v\u00f5i meetod konkreetse filtritoiminguga.<\/p>\n<\/blockquote>\n<p>See t\u00e4hendab, et peame oma ID-ga defineerima meetodi. PHP olemuse t\u00f5ttu ei pea me kasutama eraldi funktsiooni.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161108-61e71bc81c90d.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-161108-61e71bc81c90d.png\" alt=\"WordPressi vidinad: \u00fcmbert\u00f6\u00f6tamine, 5. osa\" ><\/a><\/p>\n<p>Selle asemel saame kasutada <a href=\"https:\/\/secure.php.net\/manual\/en\/functions.anonymous.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">anon\u00fc\u00fcmset funktsiooni<\/a>.<\/p>\n<blockquote>\n<p>Anon\u00fc\u00fcmsed funktsioonid, tuntud ka kui sulgemised, v\u00f5imaldavad luua funktsioone, millel pole m\u00e4\u00e4ratud nime. Need on k\u00f5ige kasulikumad tagasihelistamise parameetrite v\u00e4\u00e4rtusena, kuid neil on palju muid kasutusviise.<\/p>\n<\/blockquote>\n<p>Anon\u00fc\u00fcmne funktsioon, mille me defineerime, aktsepteerib argumendina viidet pistikprogrammile ja tagastab selle alati, kui filtrit kutsutakse (mida n\u00e4idatakse selles artiklis hiljem).<\/p>\n<h4>Teabe edastamine meie filtrisse<\/h4>\n<p>N\u00fc\u00fcd, kui see k\u00f5ik on kaetud, saame l\u00e4bida oma registri eksemplari loomise, filtri m\u00e4\u00e4ratlemise ja seej\u00e4rel registri lisamise, et see oleks kogu rakenduses juurdep\u00e4\u00e4setav.<\/p>\n<p>Nii et peamises pistikprogrammi failis, st failis <strong>wordpress-widget-boilerplate.php<\/strong>, lisame <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c3617efbbfd2a47c432f69dd41ce312c#file-00-bootstrap-namespace-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">j\u00e4rgmised<\/a> koodiread :<\/p>\n<pre><code>&lt;?php\n\nnamespace WordPressWidgetBoilerplate;\n\nuse WordPressWidgetBoilerplateUtilitiesRegistry;\n\n\/\/ More to come...\n<\/code><\/pre>\n<p>\u00dclaltoodu deklareerib nimeruumi, milles register asub. Seej\u00e4rel <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c3617efbbfd2a47c432f69dd41ce312c#file-01-bootstrap-registry-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lisame automaatlaaduri alla j\u00e4rgmise koodiploki:<\/a><\/p>\n<pre><code>&lt;?php\n\n\/\/ Setup a filter so we can retrieve the registry throughout the plugin.\n$registry = new Registry();\nadd_filter('wpWidgetRegistry', function() use ($registry) {\n    return $registry;\n});\n<\/code><\/pre>\n<p>Pange t\u00e4hele, et kui soovite pistikprogrammi aktiveerida, siis see ei aktiveeru ja kuvab veateate. Selle p\u00f5hjuseks on automaatlaaduri puudumine, mida arutatakse j\u00e4rgmises postituses.<\/p>\n<h3>2 Meie registri leidmine<\/h3>\n<p>Kuna register on m\u00e4\u00e4ratletud pistikprogrammi alglaadimiss\u00fcsteemis ja seda tehakse filtri abil, p\u00e4\u00e4seme registrile juurde k\u00f5ikjal meie pistikprogrammis, helistades kohandatud filtrile.<\/p>\n<p>Oletame n\u00e4iteks, et oleme teises klassis ja peame hankima viite registrile. Selleks <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c3617efbbfd2a47c432f69dd41ce312c#file-02-retrieve-registry-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">saame teha j\u00e4rgmise k\u00f5ne<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/\/ Retrieve the registry anywhere in the plugin.\n$registry = apply_filters('wpWidgetRegistry', null);\n<\/code><\/pre>\n<p>Ja see ongi k\u00f5ik. Lihtne, eks? Niikaua kui k\u00f5ik on korralikult registrisse lisatud \u2013 mis varsti kaetakse \u2013, siis p\u00e4\u00e4seme neile k\u00f5igile ligi <a href=\"https:\/\/tommcfarlin.com\/wordpress-widgets-part-4\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">eelmises postituses kasutatud kordumatute identifikaatorite kaudu.<\/a><\/p>\n<h2>Automaatlaadur<\/h2>\n<p>N\u00fc\u00fcd hakkame kasutama nimeruume ja kasutama muid klasse. See t\u00e4hendab, et me peame kasutama automaatlaadureid.<\/p>\n<p>Nii et enne kui asume kogu klassi praegusel kujul \u00fcmber kujundama, teeme v\u00e4ikese p\u00f5ike m\u00f5nele Composeri funktsioonile, et n\u00e4ha, kuidas seda kasutatakse automaatlaaduri genereerimiseks (lisaks juba olemasolevatele asjadele kasutades seda meie l\u00e4htekoodi kvaliteedi haldamiseks).<\/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>Kui meil on register, peame p\u00e4\u00e4sema sellele juurde kogu pistikprogrammi kaudu ja teeme seda kohandatud konksudega.<\/p>\n","protected":false},"author":1,"featured_media":236152,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,802,863],"tags":[1165],"class_list":["post-230759","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-php-4","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230759","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=230759"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230759\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/236152"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}