{"id":230980,"date":"2022-12-23T11:33:00","date_gmt":"2022-12-23T08:33:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230980"},"modified":"2022-12-07T10:47:53","modified_gmt":"2022-12-07T07:47:53","slug":"kaasake-kohandatud-mallid-meie-wordpressi-pistikprogrammidesse","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kaasake-kohandatud-mallid-meie-wordpressi-pistikprogrammidesse\/","title":{"rendered":"Kaasake kohandatud mallid meie WordPressi pistikprogrammidesse"},"content":{"rendered":"\n<p>Ma arvan, et \u00fcks alahinnatumaid aspekte \u2013 v\u00f5i v\u00f5ib-olla \u00fcks harva arutatud aspekte kohandatud pistikprogrammide arendamise juures \u2013 on v\u00f5imalus lisada meie WordPressi pistikprogrammidesse kohandatud malle.<\/p>\n<p>Ja ausalt \u00f6eldes ma saan sellest aru: ma olen \u00fcsna kindel, milline peaks olema pistikprogramm ja mis peaks olema teema.<\/p>\n<p>See on:<\/p>\n<ul>\n<li>teemad on esitluseks,<\/li>\n<li>pluginad on funktsionaalsed.<\/li>\n<\/ul>\n<p>Kui ma lisan pistikprogrammi malle, kas ma ei tee sama, mis siis, kui arendajad lisavad oma teemadesse funktsioone?<\/p>\n<p>Nagu paljude asjade puhul, mis on arenduses, arvan, et see s\u00f5ltub. Ma m\u00f5tlen, et paljude funktsioonide lisamine, mis teid teemasse lukustab, on midagi, mille f\u00e4nn ma ei ole. Samamoodi, kui teil on plugin, mis on m\u00f5eldud esiotsa andmete esitlemiseks ja on teemaagnostiline, on see m\u00f5istlik.<\/p>\n<p>Seet\u00f5ttu peate oma otsustes olema m\u00f5istlik.<\/p>\n<p>Sellest hoolimata saame kasutada kohandatud mallide lisamisel oma WordPressi pistikprogrammidesse tavalisi toiminguid.<\/p>\n<p>Ja seda see postitus n\u00e4itab.<\/p>\n<p>Kui kavatsete lisada pistikprogrammi kohandatud malle, siis eeldan, et kasutate nii \u00fcksik- kui ka arhiivimalle. Kui ei, kasutage ainult allolevaid konkse ja koodi, mida vajate.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160512-61e70bad43f3a.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-160512-61e70bad43f3a.png\" alt=\"Kaasake kohandatud mallid meie WordPressi pistikprogrammidesse\" ><\/a><\/p>\n<p>Kuid m\u00f5lema jaoks teadke j\u00e4rgmist:<\/p>\n<ul>\n<li><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\/single_template\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00fcksik_mall<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\/archive_template\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">arhiiv_mall<\/a><\/li>\n<\/ul>\n<p>Nende konksude abil saate WordPressile \u00f6elda, kus teie pistikprogrammis asuvad kohandatud mallid.<\/p>\n<h3>Mallide korraldamine<\/h3>\n<p>Minu jaoks on tavaliselt\u00a0 pistikprogrammis <strong>mallide kataloog, mis asub<\/strong> <strong>varade, src<\/strong> -i ja <strong>hankijate<\/strong> kataloogidega samal tasemel\u00a0 .<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160512-61e70bb112f53.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-160512-61e70bb112f53.png\" alt=\"Kaasake kohandatud mallid meie WordPressi pistikprogrammidesse\" ><\/a><\/p>\n<p>See muudab nende asukoha leidmise lihtsaks ja annab j\u00e4rjekindla v\u00f5imaluse lisada need k\u00f5igisse teie loodud pistikprogrammidesse. L\u00f5ppkokkuv\u00f5ttes v\u00f5ib \u00f6elda, et me oleme kasutatavates tavades j\u00e4rjekindlad.<\/p>\n<h3>Kaasa arvatud mallid<\/h3>\n<p>Eeldades, et teil on\u00a0 mall <strong>single-acme.php<\/strong> ja <strong>archive-acme.php<\/strong> mall, on seda lihtne lisada. Ja kuigi ma olen rohkem objektorienteeritud programmeerimise kasutamise f\u00e4nn, n\u00e4itan, et kaasan need mallid protseduurikoodi kasutades.<\/p>\n<p>Soovi korral on selle koodi lihtne objektorienteeritud koodiks teisendada. Lisaks eeldan, et lisate selle ka kohandatud postitust\u00fc\u00fcpide jaoks.<\/p>\n<p>Kui soovite need mallid lihtsalt kaasata, v\u00f5ite kohandatud postituse t\u00fc\u00fcbi tingimuse alati v\u00e4lja j\u00e4tta, kuid minu kogemuse p\u00f5hjal on minu arvates haruldane, et need olukorrad ei kasuta kohandatud postituse t\u00fc\u00fcpe, kuid ma ei tea teie olukorda.<\/p>\n<p>See t\u00e4hendab, et siin on kood.<\/p>\n<h4>Konksude m\u00e4\u00e4ratlemine<\/h4>\n<p>Esiteks peame m\u00e4\u00e4ratlema konksud. See on suhteliselt lihtne, kuna me kasutame \u00fclalkirjeldatud konkse.<\/p>\n<p>Esiteks <a href=\"https:\/\/gist.github.com\/tommcfarlin\/5d555468c2c5b3448e5bb0ed6f666f6f#file-02-single-template-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00fcks mall<\/a> :<\/p>\n<pre><code>&lt;?php\n\nadd_action('single_template', 'acmeIncludeSingleTemplate');\n\/**\n * Includes a custom, single template as included in a plugin. If\n * the template is being viewed for a custom post type then use it;\n * otherwise, use the template that's provided by WordPress at runtime.\n *\n * @param  string $originalTemplate the path to the original template\n *\n * @return string the path to the original template or the custom template.\n *\/\nfunction acmeIncludeSingleTemplate($originalTemplate)\n{\n   \/\/ More to come...\n}<\/code><\/pre>\n<p>Ja siis <a href=\"https:\/\/gist.github.com\/tommcfarlin\/5d555468c2c5b3448e5bb0ed6f666f6f#file-03-archive-template-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">arhiivi mall<\/a> :<\/p>\n<pre><code>&lt;?php\n\nadd_action('archive_template', 'acmeIncludeArchiveTemplate');\n\/**\n * Includes a custom, archive template as included in a plugin. If\n * the template is being viewed for a custom post type then use it;\n * otherwise, use the template that's provided by WordPress at runtime.\n *\n * @param  string $originalArchiveTemplate the path to the original template\n *\n * @return string the path to the original template or the custom template.\n *\/\nfunction acmeIncludeArchiveTemplate($originalArchiveTemplate)\n{\n  \/\/ More to come...\n}<\/code><\/pre>\n<p>Ja n\u00fc\u00fcd saame rakendada iga funktsiooni koodi.<\/p>\n<h4>Koodi lisamine<\/h4>\n<p>Esiteks vaatame <a href=\"https:\/\/gist.github.com\/tommcfarlin\/5d555468c2c5b3448e5bb0ed6f666f6f#file-00-acme-single-template-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00fchte malli<\/a> :<\/p>\n<pre><code>&lt;?php\n\nadd_action('single_template', 'acmeIncludeSingleTemplate');\n\/**\n * Includes a custom, single template as included in a plugin. If\n * the template is being viewed for a custom post type then use it;\n * otherwise, use the template that's provided by WordPress at runtime.\n *\n * @param  string $originalTemplate the path to the original template\n *\n * @return string the path to the original template or the custom template.\n *\/\nfunction acmeIncludeSingleTemplate($originalTemplate)\n{\n  $singleTemplate = plugin_dir_path(\n    dirname(\n      __DIR__) );\n  $singleTemplate .= '\/templates\/single-acme.php';\n\n  if ('acme-cpt' === get_post_type(get_the_ID())) {\n      if (file_exists($singleTemplate)) {\n          return $singleTemplate;\n      }\n  }\n\n  return $originalTemplate;\n}<\/code><\/pre>\n<p>Ja n\u00fc\u00fcd <a href=\"https:\/\/gist.github.com\/tommcfarlin\/5d555468c2c5b3448e5bb0ed6f666f6f#file-01-acme-archive-template-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">arhiivi mall<\/a> :<\/p>\n<pre><code>&lt;?php\n\nadd_action('archive_template', 'acmeIncludeArchiveTemplate');\n\/**\n * Includes a custom, archive template as included in a plugin. If\n * the template is being viewed for a custom post type then use it;\n * otherwise, use the template that's provided by WordPress at runtime.\n *\n * @param  string $originalArchiveTemplate the path to the original template\n *\n * @return string the path to the original template or the custom template.\n *\/\nfunction acmeIncludeArchiveTemplate($originalArchiveTemplate)\n{\n  $archiveTemplate = plugin_dir_path(\n    dirname(\n      __DIR__) );\n  $archiveTemplate .= '\/templates\/archive-acme.php';\n\n  if ('acme-cpt' === get_post_type(get_the_ID())) {\n      if (file_exists($archiveTemplate)) {\n          return $archiveTemplate;\n      }\n  }\n\n  return $originalArchiveTemplate;\n}<\/code><\/pre>\n<p>Kui olete koodile t\u00e4helepanelikult t\u00e4helepanu p\u00f6\u00f6ranud, teate, et seal on v\u00e4ga v\u00e4he erinevusi. Tegelikult saab \u00fcldise protsessi kirjeldada j\u00e4rgmiselt:<\/p>\n<ol>\n<li>m\u00e4\u00e4ratlege konks,<\/li>\n<li>leidke mall,<\/li>\n<li>kontrollige kohandatud postituse t\u00fc\u00fcpi,<\/li>\n<li>mall on olemas, kasutage seda<\/li>\n<li>muul juhul kasutage vaikemalli<\/li>\n<\/ol>\n<p>Ja see on protsess nii \u00fcksik- kui ka arhiivimallide jaoks.<\/p>\n<h3>\u00dchilduvate mallide kirjutamine<\/h3>\n<p>Ja l\u00f5puks, ja see on eriti oluline, kui soovite malli v\u00f5imalikult agnostiliseks muuta, proovin pistikprogrammiga seotud sisu kuvamisel kasutada v\u00f5imalikult palju sisseehitatud WordPressi mallim\u00e4rgendeid. See v\u00f5imaldab teema arendajatel seda h\u00f5lpsasti oma teemaga sobivaks kujundada.<\/p>\n<p>Ei, te ei saa mahutada k\u00f5iki teemasid, kuid selline on WordPressi teemade olemus. Eesm\u00e4rk on v\u00f5tta mallist andmete toomisel ja renderdamisel v\u00f5imalikult palju t\u00f6\u00f6d, et esiotsa arendajad saaksid seda h\u00f5lpsalt hallata.<\/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>Kohandatud mallide lisamisel oma WordPressi pistikprogrammidesse saame kasutada tavalisi toiminguid.<\/p>\n","protected":false},"author":1,"featured_media":236054,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,833,894,842,802,863],"tags":[1165],"class_list":["post-230980","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-juhend-algajatele","category-kood","category-opetused","category-php-4","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230980","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=230980"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230980\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/236054"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}