{"id":229459,"date":"2022-11-16T19:25:00","date_gmt":"2022-11-16T16:25:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229459"},"modified":"2022-11-09T07:10:03","modified_gmt":"2022-11-09T04:10:03","slug":"wordpressi-mallid-algajatele-kuidas-see-on","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-mallid-algajatele-kuidas-see-on\/","title":{"rendered":"WordPressi mallid algajatele: kuidas see on"},"content":{"rendered":"\n<p>Kui hakkasin WordPressis mallide loomisele esimest korda m\u00f5tlema, m\u00f5tlesin kahele aspektile:<\/p>\n<ol>\n<li>spetsiaalselt <a href=\"https:\/\/tommcfarlin.com\/register\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">liikmetele<\/a> m\u00f5eldud sisu ,<\/li>\n<li>sisu, mis v\u00f5ib laguneda \u00fcheks postituseks.<\/li>\n<\/ol>\n<p>Kuid mida rohkem ma sellele m\u00f5tlesin, seda rohkem m\u00f5istsin, et seda saab (ja v\u00e4idetavalt tuleks) m\u00f5ne postituse jooksul selgitada.<\/p>\n<p>Nii et ma annan lahti WordPressi mallide praeguse oleku ja seej\u00e4rel praktilised viisid, kuidas saame korraldada n\u00e4iteks oma pistikprogrammid nii, et kasutaksime tavalist PHP-d.<\/p>\n<p>P\u00e4rast seda vaatan tulevases seerias, mida t\u00e4hendab teiste mallimootorite kasutamine (nii PHP kui ka JavaScripti meie t\u00f6\u00f6s).<\/p>\n<p>Alustuseks tahan aga vaadata, kuidas n\u00e4eme sageli nii WordPressi teemade kui ka pistikprogrammide kontekstis kirjutatud malle.<\/p>\n<h2>WordPressi mallid algajatele<\/h2>\n<p>Olenevalt teie kogemusest WordPressi ja teiste PHP-p\u00f5histe s\u00fcsteemidega, erineb teie malli m\u00e4\u00e4ratlus kellegi teise omast.<\/p>\n<p>Nii et proovimaks luua \u00fchtset m\u00e4\u00e4ratlust, mida ma selle postituste seeria jooksul kasutan, kasutatakse <a href=\"https:\/\/codex.wordpress.org\/Templates\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi koodeksist:<\/a><\/p>\n<blockquote>\n<p>Mallid on failid, mis m\u00e4\u00e4ravad, kuidas teie WordPressi saiti veebis kuvatakse.<\/p>\n<\/blockquote>\n<p>Leht r\u00e4\u00e4gib sellest, kuidas see t\u00f6\u00f6tab koos andmebaasi ja muude varadega, ning kui te pole sellega tuttav, soovitan selle kohta lugeda.<\/p>\n<p>\u00dclaltoodud definitsioon sobib aga h\u00e4sti selle jaoks, kuidas kavatsen sellele m\u00f5eldes edasi liikuda.<\/p>\n<h3>1 Kuidas see on (praegu)<\/h3>\n<p>Kui r\u00e4\u00e4kida WordPressi mallidest, siis arvan, et aitab kaaluda \u00fchte malli, mille kood <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-00-content-container-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">n\u00e4eb v\u00e4lja umbes selline:<\/a><\/p>\n<pre><code>&lt;div id=\"content-container\"&gt;\n\n  &lt;p&gt;\n    Oh! The garbage chute was a really wonderful idea. What an incredible smell you've discovered! Let's get out of here! \n    Get away from there... No! wait! Will you forget it? I already tried it. It's magnetically sealed! Put that \n    thing away! You're going to get us all killed.\n  &lt;\/p&gt;\n\n  &lt;h2&gt;List of Post Titles For Acme Post Type&lt;\/h2&gt;\n  &lt;?php\n  $args = array(\n    'post_status'    =&gt; 'publish',\n    'post_type'      =&gt; 'acme',\n    'posts_per_page' =&gt; '10'\n  );\n  $custom_query = new WP_Query( $args );\n\n  if ($custom_query-&gt;have_posts()) {\n    echo '&lt;ul&gt;';\n    while ($custom_query-&gt;have_posts()) {\n      $custom_query-&gt;the_post();\n      echo '&lt;li&gt;'. get_the_title(). '&lt;\/li&gt;';\n    }\n    echo '&lt;\/ul&gt;';\n    wp_reset_postdata();\n  }\n  ?&gt;\n\n  &lt;p&gt;\n    Absolutely, Your Worship. Look, I had everything under control until you led us down here. You know, it's not \n    going to take them long to figure out what happened to us. It could be worst... It's worst. \n    There's something alive in here! That's your imagination. Something just moves past my leg! \n    Look! Did you see that? What? Help!\n  &lt;\/p&gt;\n\n&lt;\/div&gt;&lt;!-- #content-container --&gt;<\/code><\/pre>\n<p>\u00dclaltoodud koodi m\u00f5te on see, et n\u00e4ete, et see segab PHP ja HTML-i.<\/p>\n<p>Lisaks on oluline m\u00e4rkida, et k\u00f5ik need failid on kujundatud CSS-i abil ja nende k\u00e4itumist v\u00f5ib reguleerida JavaScripti kaudu. Sel eesm\u00e4rgil v\u00f5ite seda m\u00f5testada j\u00e4rgmiselt:<\/p>\n<p>See kujutab endast \u00fcht malli, mis \u00fchendab nii HTML-i kui ka PHP \u00fcheks malliks. Seej\u00e4rel kujundatakse see mall CSS-iga ja seda juhitakse JavaScriptiga.<\/p>\n<p>K\u00f5ik need toimivad koos, et pakkuda seda, mida kasutaja n\u00e4eb.<\/p>\n<h3>2 Kas arendajaorganisatsioon loob j\u00f5udlust?<\/h3>\n<p>Kuid viis, kuidas see toimib, on omamoodi segane ja kuigi see v\u00f5ib kasutajale hea v\u00e4lja n\u00e4ha, tekitab see m\u00f5ningaid k\u00fcsimusi:<\/p>\n<ul>\n<li>Kas see on nii tulemuslik kui v\u00f5iks olla?<\/li>\n<li>Kui lihtne on seda arendajal hooldada?<\/li>\n<li>Mis on ehitusprotsess?<\/li>\n<li>kuidas vara hoitakse ja korraldatakse?<\/li>\n<\/ul>\n<p>Muidugi, suurem osa sellest, mida \u00fclal loed, on v\u00e4ga arendajakeskne, kuid leian, et kui kood on korraldatud nii, et arendajatel on sellega lihtne t\u00f6\u00f6tada, v\u00f5ib see sageli olla kasutaja jaoks veelgi kiirem.<\/p>\n<p>Mida see aga t\u00e4hendab?<\/p>\n<ul>\n<li>Kas tutvustame Sassi?<\/li>\n<li>Kas me v\u00e4hendame JavaScripti?<\/li>\n<li>Kuidas me neid varasid kombineerime ja impordime?<\/li>\n<li>Kuidas on lood kohandatud PHP-p\u00e4ringutega, mis toimuvad iga malli kontekstis?<\/li>\n<\/ul>\n<p>Ja kuigi esimesed asjad on olulised ja seda v\u00e4\u00e4rt (ja ma v\u00f5in p\u00e4rast seda seda mitmes sarjas k\u00e4sitleda), v\u00f5ib loogika eraldamine malli seest isegi ilma mallimootorita muuta koodi arendajakesksemaks.<\/p>\n<p>Kas see muudab kasutaja jaoks asjad kiiremaks? Mitte tingimata. Kuid see aitab meil teha esimest sammu just selle nimel.<\/p>\n<h2>Korraldame end \u00fcmber<\/h2>\n<p>Selle seeria j\u00e4rgmises postituses v\u00f5tan n\u00e4ite kaudu lahti sisu, mida oleme harjunud WordPressi mallides n\u00e4gema, ja hakkan seda \u00fcmber korraldama, et see oleks paremini organiseeritud nii, et tehnikaid saaks erinevates projektides kasutada.<\/p>\n<p>See t\u00e4hendab asjade liigutamist nende funktsioonidesse (v\u00f5i isegi klassidesse ja seega ka funktsioonidesse) ja seda, kuidas me saame neid oma mallide kontekstis kutsuda.<\/p>\n<p>L\u00f5ppkokkuv\u00f5ttes toob see kaasa h\u00f5lpsamini loetava koodi, probleemide parema eraldamise ja suunab meid andmete mallisse sisestamise muutmise viiside poole.<\/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>Mallid on viis, kuidas andmeid kasutajale kuvatakse, kuid kuidas saaksime WordPressi malle kasutada ja nende korraldust kasutajate ja arendajate jaoks paremaks muuta?<\/p>\n","protected":false},"author":1,"featured_media":223990,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[894,842,926,863],"tags":[1165],"class_list":["post-229459","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kood","category-opetused","category-teemasid","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229459","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=229459"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229459\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/223990"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=229459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=229459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=229459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}