{"id":228655,"date":"2022-10-26T16:18:00","date_gmt":"2022-10-26T13:18:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228655"},"modified":"2022-11-09T03:38:05","modified_gmt":"2022-11-09T00:38:05","slug":"wordpressi-postituste-tueuebid-abstraktsioon-ueksuste-jaoks","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-postituste-tueuebid-abstraktsioon-ueksuste-jaoks\/","title":{"rendered":"WordPressi postituste t\u00fc\u00fcbid: abstraktsioon \u00fcksuste jaoks"},"content":{"rendered":"\n<p>Kui programmeerijad r\u00e4\u00e4givad olemitest, r\u00e4\u00e4givad nad tavaliselt kontseptsioonist v\u00f5i millestki, mis s\u00fcsteemis eksisteerib. M\u00f5nikord on see klass, m\u00f5nikord raamatukogu v\u00f5i s\u00f5ltuvus v\u00f5i see v\u00f5ib olla midagi WordPressi postituste t\u00fc\u00fcpide sarnast.<\/p>\n<p>Kui WordPressi k\u00e4sitleda kui <a href=\"https:\/\/tommcfarlin.com\/web-application-foundation\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">rakenduste alust (v\u00f5rreldes raamistikuga)<\/a>, on oluline m\u00f5elda teatud funktsioonidele viisil, mida saab k\u00e4sitleda \u00fcksustena. \u00dclaltoodud n\u00e4ites on postituse t\u00fc\u00fcp just see.<\/p>\n<p>Kohandatud postitust\u00fc\u00fcpide kasutuselev\u00f5tt <a href=\"https:\/\/make.wordpress.org\/training\/handbook\/theme-school\/custom-post-types\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">andis meile v\u00f5imaluse<\/a> lisada rakendusse midagi muud peale lehtede ja postituste. N\u00fc\u00fcd saame rakendada mis tahes kontseptsiooni \u2013 nagu <a href=\"https:\/\/wordpress.mediadoma.com\/et\/paeringute-tegemine-suendmuste-postituste-tueuepide-kohta-wp-paeringu-ja-suendmuste-kalendri-abil\/\" title=\"s\u00fcndmust\">s\u00fcndmust<\/a> \u2013 ja k\u00e4sitleda seda s\u00fcsteemis eraldiseisvana.<\/p>\n<p>Aga kui k\u00f5ik on \u00f6eldud ja tehtud, salvestatakse see k\u00f5ik postituste tabelisse. Ja see on hea, sest tarkvaraarendus seisneb abstraktsioonis. WordPressi postitust\u00fc\u00fcpide juurutamisel rakendame postituste ideele lisaks abstraktsiooni.<\/p>\n<h2>WordPressi postituste t\u00fc\u00fcbid<\/h2>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-kasutajate-programmiline-loomine\/\" title=\"Viimases postituses\">Viimases postituses<\/a> k\u00e4isin l\u00e4bi kasutaja loomise protsessi, kes seotakse l\u00f5plikult m\u00f5ne WordPressi rakenduse olemiga.<\/p>\n<ul>\n<li>V\u00f5ib-olla on ta postituse autor,<\/li>\n<li>V\u00f5ib-olla on ta toote m\u00fc\u00fcja,<\/li>\n<li>V\u00f5ib-olla on ta loo jutustaja,<\/li>\n<li>V\u00f5i mida iganes muud ette kujutate.<\/li>\n<\/ul>\n<p>V\u00f5imalusi on l\u00f5putult. Kuid enne, kui r\u00e4\u00e4gime sellest, kuidas luua seost kahe olemi \u2013 st kasutaja ja WordPressi postituse t\u00fc\u00fcbi \u2013 vahel, peame r\u00e4\u00e4kima sellest, kuidas olemit v\u00f5i kohandatud postitust\u00fc\u00fcpi programmiliselt rakendada.<\/p>\n<p>Selle kohta on palju dokumentatsiooni ja selle kohta on saadaval palju \u00f5petusi, nii et ma ei hakka seda m\u00f5tet k\u00e4sitlema. Selle asemel p\u00fc\u00fcan ma seda v\u00f5imalikult paljalt hoida. Pidage meeles, et kogu selle seeria eesm\u00e4rk on l\u00f5puks j\u00f5uda punkti, kus me seostame \u00fcksusi metaandmete kaudu.<\/p>\n<p>Kuid enne seda peame looma \u00fcksused. Seega on meil kasutaja, nii et teeme seda.<\/p>\n<p>Oletame n\u00e4iteks, et eelmises postituses loodud kasutaja Meghan on raamatu autor. Ja kellegi teise hallatavas WordPressi installis on raamatute jaoks kohandatud postituse t\u00fc\u00fcp, millel k\u00f5igil on m\u00f5ned atribuudid:<\/p>\n<ul>\n<li>pealkiri,<\/li>\n<li>kirjeldus,<\/li>\n<li>avaldamise kuup\u00e4ev,<\/li>\n<li>ISBN,<\/li>\n<li>m\u00fc\u00fcdud esialgsete eksemplaride arv,<\/li>\n<li>kust seda osta saab,<\/li>\n<li>ja nii edasi.<\/li>\n<\/ul>\n<p>Saate oma teostust rohkem v\u00f5i v\u00e4hem lisada. Tegelikult tegelete v\u00f5ib-olla e-raamatute m\u00fc\u00fcgiga ja \u00fcks atribuutidest on raamatu URL ostmiseks. Igal juhul saate ideest aru.<\/p>\n<p>Seda arvestades saame programmiliselt rakendada lihtsat kohandatud postitust\u00fc\u00fcpi &quot;raamatute&quot; jaoks.<\/p>\n<h3>Postituse t\u00fc\u00fcbi rakendamine<\/h3>\n<p>Ja see n\u00e4eb v\u00e4lja <a href=\"https:\/\/gist.github.com\/tommcfarlin\/17ab6e5d052da8d471b15cfd70ffa37c\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selline<\/a> :<\/p>\n<pre><code>&lt;?php\n\nadd_action( 'init', 'acme_create_book_post_type' );\n\/**\n * Creates a new custom post type called 'Book' using the smallest number of arguments\n * to prepare the post type.\n *\/\nfunction acme_create_book_post_type() {\n\n    $args = array(\n        'labels' =&gt; array(\n            'name'          =&gt; 'Books',\n            'singular_name' =&gt; 'Book',\n        ),\n        'public' =&gt; true,\n    );\n    register_post_type( 'acme_book', $args );\n}<\/code><\/pre>\n<p>Kui loete <a href=\"https:\/\/codex.wordpress.org\/Post_Types\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kohandatud postitust\u00fc\u00fcpide loomise<\/a> dokumentatsiooni, pole selles midagi ebatavalist. See peaks v\u00e4lja n\u00e4gema t\u00e4pselt selline, nagu ootate.<\/p>\n<p>See, kus loote, s\u00f5ltub teie projekti olemusest. Paljud inimesed arvavad, et see on pistikprogrammis v\u00f5i teemaks kujundatud. See pole koht, kus selle \u00fcle vaielda. Piisab, kui \u00f6elda, et oma eesm\u00e4rkidel eeldan, et see k\u00f5ik on eelmise \u00f5petuse sama pistikprogrammi osa.<\/p>\n<p>Lisaks ei kaldu ma k\u00f5rvale kohandatud taksonoomiatest, kommentaaridest ega muudest kohandatud t\u00fc\u00fcpi andmetest, mida on v\u00f5imalik kohandatud postituse t\u00fc\u00fcbiga seostada.<\/p>\n<p>Sealt edasi vaatame, kuidas see WordPressi haldusalas v\u00e4lja n\u00e4eb ja kuidas see andmebaasis v\u00e4lja n\u00e4eb.<\/p>\n<h3>Vaata eesriide taha<\/h3>\n<p>Esiteks, j\u00e4rgmine n\u00e4eb v\u00e4lja (v\u00f5i peaks v\u00e4lja n\u00e4gema) WordPressi haldusalas:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-167618-61e7a62adc9ed.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-167618-61e7a62adc9ed.png\" alt=\"WordPressi postituste t\u00fc\u00fcbid: abstraktsioon \u00fcksuste jaoks\" ><\/a><\/p>\n<p>Ja kui vaatate p\u00e4rast kande loomist andmebaasi, n\u00e4ete midagi sellist:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-167618-61e7a6307603a.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-167618-61e7a6307603a.png\" alt=\"WordPressi postituste t\u00fc\u00fcbid: abstraktsioon \u00fcksuste jaoks\" ><\/a><\/p>\n<p>Ilmselgelt olen piiranud andmebaasi kasutajaliideses tagastatud kirjeid, filtreerides tulemusi, et ekraanipilti oleks lihtsam j\u00e4lgida.<\/p>\n<h2>Raamatutes<\/h2>\n<p>Ja see on k\u00f5ik, t\u00f5esti. Pean silmas seda, et k\u00f5ige p\u00f5hilisemal tasemel loote WordPressis kohandatud postitust\u00fc\u00fcbi. Ma tean, et see pole midagi uut, aga kui ma saaksin sellisele postitusele veidi tugevamalt v\u00e4ita, siis see sisaldaks kahte j\u00e4rgmist punkti.<\/p>\n<h4>1 See puudutab abstraktsioone<\/h4>\n<p>Kui soovite WordPressi abil veebirakendusi luua, on oluline l\u00f5petada traditsiooniliste terminite (nt postitused, lehed, kommentaarid ja kategooriad) m\u00f5tlemine ning hakata m\u00f5tlema neile kui \u00fcldisematele abstraktsioonidele.<\/p>\n<p>\u00dcksused, nagu artiklis varem mainitud. Kui olete seda teinud, toimub vaimses mudelis nihe, mis juhib teie v\u00f5imet lahendus l\u00e4bi m\u00f5elda ja rakendada.<\/p>\n<h4>2 See puudutab suhteid<\/h4>\n<p>Kuigi me m\u00f5tleme sageli asjadele nende \u00fcksikutes osades, nagu postitused ja lehed, teame siiski, et postitustel v\u00f5ivad olla kommentaarid, kommentaaridel vastused, lehtedel v\u00f5ivad olla mallid ja nii edasi.<\/p>\n<p>K\u00f5igi nende \u00fcksikute asjade vahel, mis on s\u00fcsteemi osa, on seosed. Ja kui hakkate m\u00f5tlema suhetest kui millestki, mis v\u00f5imaldab meil teha rohkem, hakkate n\u00e4gema, kui v\u00f5imas miski v\u00f5ib olla. See on tervik &quot;tervik on suurem kui selle osade summa&quot;.<\/p>\n<p>Nii et kui teil on \u00fcksikud \u00fcksused paigas ja kui hakkate n\u00e4gema, kuidas nad saavad \u00fcksteisega seostuda, v\u00f5tate sammu edasi, luues midagi, mis lahendab pealtn\u00e4ha lihtsatest osadest pisut keerulisema probleemi.<\/p>\n<p>Ja sinna me j\u00e4rgmisena suundume.<\/p>\n<h2>Kuidas on lood metaandmetega?<\/h2>\n<p>Selle sarja kogu eesm\u00e4rk on l\u00e4bi k\u00e4ia, kuidas luua \u00fcksuste vahel seost, eks? T\u00e4psemalt soovime luua seost kasutaja ja postituse v\u00f5i t\u00e4psemalt autori ja raamatu vahel.<\/p>\n<p>WordPress loob selle aluse ja siin saab m\u00e4ngu tulla t\u00e4iendavate tabelite ja konksude v\u00f5imsus. J\u00e4rgmises postituses r\u00e4\u00e4gin sellest, kuidas seda seost luua, millistes suundades \u00fchendused v\u00f5ivad liikuda ja kuidas nende andmetega t\u00f6\u00f6tada, kui n\u00e4iteks kasutaja rakendusest kustutatakse.<\/p>\n<h2>Sarja postitused<\/h2>\n<ol>\n<li><a href=\"https:\/\/tommcfarlin.com\/wordpress-metadata-association\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi metaandmete assotsiatsioon: kuidas seda teha<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-kasutajate-programmiline-loomine\/\" title=\"WordPressi kasutajate programmiline loomine\">WordPressi kasutajate programmiline loomine<\/a><\/li>\n<li><a href=\"https:\/\/tommcfarlin.com\/wordpress-post-types\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi postituste t\u00fc\u00fcbid: abstraktsioon \u00fcksuste jaoks<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-metaandmete-assotsiatsioon-seotud-ueksused\/\" title=\"WordPressi metaandmete assotsiatsioon: seotud \u00fcksused\">WordPressi metaandmete assotsiatsioon: seotud \u00fcksused<\/a><\/li>\n<\/ol>\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 programmeerijad r\u00e4\u00e4givad olemitest, r\u00e4\u00e4givad nad tavaliselt s\u00fcsteemi \u00fcksikust osast \u2013 n\u00e4iteks WordPressi postitust\u00fc\u00fcpidest.<\/p>\n","protected":false},"author":1,"featured_media":221177,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,916,842,863],"tags":[1165],"class_list":["post-228655","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-muud","category-opetused","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228655","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=228655"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228655\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/221177"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=228655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=228655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=228655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}