{"id":231519,"date":"2023-01-06T12:44:00","date_gmt":"2023-01-06T09:44:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231519"},"modified":"2022-12-25T21:37:49","modified_gmt":"2022-12-25T18:37:49","slug":"lisage-kohandatud-vaade-koigi-postituste-ekraanile","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/lisage-kohandatud-vaade-koigi-postituste-ekraanile\/","title":{"rendered":"Lisage kohandatud vaade k\u00f5igi postituste ekraanile"},"content":{"rendered":"\n<p><strong>TL;DR<\/strong>: T\u00f6\u00f6tan sarja kallal, mis vaatleb, kuidas saavutada taksonoomiate ja t\u00f5en\u00e4oliste kategooriatega kasulik \u00fclesanne, seej\u00e4rel muuta see \u00fcmber objektorienteeritud pistikprogrammiks, mis toimib \u00fcldiselt taksonoomiate utiliidi pluginana. .<\/p>\n<hr \/>\n<h3>OOP-postituste l\u00fchiajalugu<\/h3>\n<p>M\u00f5ni aeg tagasi tegin <a href=\"https:\/\/tommcfarlin.com\/tag\/oop-fundamentals\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pika seeria<\/a> objektorienteeritud programmeerimise p\u00f5him\u00f5tetest (ja p\u00fc\u00fcdsin jagada korralikku summat, kuidas WordPressi kontekstis teatud asju saavutada).<\/p>\n<p>Samuti olen aastate jooksul kirjutanud terve paradigma kohta hulga artikleid neile, kes on huvitatud <a href=\"https:\/\/tommcfarlin.com\/tag\/object-oriented-programming\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">m\u00f5ne neist artiklitest<\/a>.<\/p>\n<p>Ja ma oleksin hooletu, kui ma ei r\u00e4\u00e4giks, et <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ka mu hea s\u00f5ber on<\/a> <a href=\"https:\/\/tommcfarlin.com\/object-oriented-programming-using-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sellel teemal<\/a> s\u00f5na otseses m\u00f5ttes raamatu kirjutanud .<\/p>\n<p>Ja seet\u00f5ttu, kui ma olen m\u00f5elnud erinevatele teemadele, millest kirjutada (p\u00e4rast ilmselt pikemat puhkust kui plaanisin), arvasin, et v\u00f5ib-olla tasub r\u00e4\u00e4kida praktilistest asjadest, mida saame teha tavaliste API-de ja konksudega ja siis muutke see teatud t\u00fc\u00fcpi utiliidi pistikprogrammiks.<\/p>\n<h2>Lisa kohandatud vaade<\/h2>\n<p>Selles demos jagatava t\u00f6\u00f6 jaoks kasutan j\u00e4rgmist:<\/p>\n<ul>\n<li><a href=\"https:\/\/localwp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><code>https:\/\/sandbox.local<\/code>Hoorattaga <a href=\"https:\/\/localwp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kohalik<\/a> domeeniga<\/li>\n<li><a href=\"https:\/\/www.tableplus.io\/download\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TablePlus<\/a> juurdep\u00e4\u00e4suks andmebaasile<\/li>\n<li><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio kood<\/a> minu IDE-na<\/li>\n<li>Ja <a href=\"https:\/\/github.com\/WebDevStudios\/php-coding-standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WDS PHP kodeerimisstandardid<\/a> kogu PHP jaoks, mida n\u00e4ete.<\/li>\n<\/ul>\n<p>Kui soovite j\u00e4lgida, mis mul toimub, kasutage k\u00f5ike \u00fclaltoodut (ma ei tea, kas ma jagan k\u00f5ike, aga kui n\u00e4ete ekraanipilte ja koodil\u00f5ike, siis teate, kust see p\u00e4rit on ).<\/p>\n<p>Sellega seoses on siin l\u00fchike k\u00f5rvalep\u00f5ik <code>views<\/code>WordPressi kohta (ja see pole nagu Views <a href=\"https:\/\/en.wikipedia.org\/wiki\/Model%E2%80%93view%E2%80%93controller\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MVC<\/a> v\u00f5i <a href=\"https:\/\/en.wikipedia.org\/wiki\/Model%E2%80%93view%E2%80%93viewmodel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MVVM<\/a> t\u00e4henduses ).<\/p>\n<h3>WordPressi vaated<\/h3>\n<p>Selle kirjutamise ajal ei tundunud olevat selget ja kokkuv\u00f5tlikku v\u00e4idet selle kohta, mis on WordPressi vaade. Saadaoleva konksu osas on meil <code>views_edit-post<\/code>.<\/p>\n<p>Nii et kui me v\u00f5tame selle konkreetse konksu ja selle, mida see teeb, siis v\u00f5ib-olla piisaks sellisest:<\/p>\n<p>WordPressi vaade on leht, kus saame vaadata k\u00f5iki postitusi, mis vastavad teatud kriteeriumidele.<\/p>\n<p>See kriteerium h\u00f5lmab tavaliselt selliseid postitusi nagu:<\/p>\n<ul>\n<li>Avaldatud,<\/li>\n<li>Mustandid,<\/li>\n<li>pr\u00fcgikast,<\/li>\n<li>Plaanitud,<\/li>\n<li>Ja nii edasi.<\/li>\n<\/ul>\n<p>Aga mis siis, kui teil on m\u00f5ni muu postitus, millel on m\u00f5ni muu kriteerium, mille j\u00e4rgi soovite filtreerida? Muidugi saate filtreerida ekraanil oleva rippmen\u00fc\u00fc alusel (n\u00e4iteks kategooriate j\u00e4rgi) ja see on hea, aga mis siis, kui soovite kasutada kohandatud kriteeriume [mis tahes p\u00f5hjusel]?<\/p>\n<p>N\u00e4iteks kui te ei soovi, et peaksite kl\u00f5psama teatud elemendil, seej\u00e4rel filtreerima ja seej\u00e4rel postitusi vaatama? Selle asemel soovite n\u00e4ha linki kriteeriumidele, kriteeriumidele vastavate postituste arvu ja seej\u00e4rel nende j\u00e4rgi filtreerida?<\/p>\n<p>Siin tuleb m\u00e4ngu vaadete redigeerimise v\u00f5imalus.<\/p>\n<p>Ja selle postituse jaoks k\u00e4sitlen seda, kuidas tutvustada lehe \u00fclaosas uut ankrut, mis loetleb kindlaksm\u00e4\u00e4ratud kategooria postituste arvu.<\/p>\n<h3>Mis on meie vaade?<\/h3>\n<p>Sel juhul kasutame funktsiooni Uncategorized, kuna vaikeinstallatsioonis on juba saadaval kategoriseerimata postitus ja me saame selle \u00fcmber h\u00f5lpsalt teatud muudatusi muuta.<\/p>\n<p>Selleks kirjutame, <code>mu-plugin<\/code>nii et see paigutatakse <code>mu-plugins<\/code>kataloogi. Kui teie installil seda pole, lisage kataloog ja seej\u00e4rel lisage <code>add-custom-view.php<\/code>kataloogi:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de802d2a6.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-158448-61e6de802d2a6.png\" alt=\"Lisage kohandatud vaade k\u00f5igi postituste ekraanile\" ><\/a><\/p>\n<p>Sealt edasi v\u00f5ib esialgne pistikprogrammi fail v\u00e4lja n\u00e4ha umbes selline:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de83d7406.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-158448-61e6de83d7406.png\" alt=\"Lisage kohandatud vaade k\u00f5igi postituste ekraanile\" ><\/a><\/p>\n<p>Esialgu teeme j\u00e4rgmist:<\/p>\n<ol>\n<li>Nimeruumi m\u00e4\u00e4ramine,<\/li>\n<li>Filtri lisamine,<\/li>\n<li>Seej\u00e4rel seadistage funktsioon, mis aktsepteerib vaikekomplekti <code>$views<\/code>ja tagastab massiivi <code>$views<\/code>p\u00e4rast nende muutmist.<\/li>\n<\/ol>\n<p>Mida me siis siit edasi tegema peame?<\/p>\n<h3>N\u00f5uete kogum<\/h3>\n<p>Et saavutada seda, mida tahame, peame suutma:<\/p>\n<ul>\n<li>M\u00e4\u00e4rake kategooria nimi,<\/li>\n<li>Lisage vaadete loendisse link kategooriale ja selle kategooria postituste arv,<\/li>\n<li>V\u00f5imalus teha kindlaks, kas oleme kategoorialehel, et loendit \u00f5igesti kujundada<\/li>\n<li>V\u00f5imalus filtreerida postituse t\u00fc\u00fcbi j\u00e4rgi,<\/li>\n<li>Ja viis selle testimiseks.<\/li>\n<\/ul>\n<p>K\u00f5ike \u00fclaltoodut k\u00e4sitletakse artiklis hiljem koodis, kuid viies samm n\u00f5uab kategooria k\u00e4sitsi loomist, et saaksime h\u00f5lpsalt testida, kas \u00fclej\u00e4\u00e4nud kood t\u00f6\u00f6tab.<\/p>\n<p>Nii et mine edasi ja tee seda. Kategooriale v\u00f5ib anda \u00fcksk\u00f5ik millise nime (kasutasin n\u00e4idiskategooriat). Kui see on tehtud, kirjutame \u00fclej\u00e4\u00e4nud pistikprogrammist koodi.<\/p>\n<h4>M\u00e4\u00e4rake meie vaade<\/h4>\n<p>Esiteks jagan funktsiooni, mis m\u00e4\u00e4rab, millisel lehel me oleme, ja teeb \u00fchte kahest asjast.<\/p>\n<ul>\n<li>Kui oleme lehel, millel on meie kategooria ID jaoks sama p\u00e4ringustringi parameeter, annan ma klassi nime; vastasel juhul tagastame t\u00fchja stringi.<\/li>\n<\/ul>\n<p>Selleks peaks funktsioon:<\/p>\n<ol>\n<li>N\u00f5ustuge kategooria nimega,<\/li>\n<li>Initsialiseerige atribuutide jaoks muutuja,<\/li>\n<li>V\u00f5rrelge p\u00e4ringustringi muutujaid<\/li>\n<li>Tehke kindlaks, kas kategooria nimi ja kategooria ID on samad,<\/li>\n<li>Ja tagastage \u00f5ige v\u00e4\u00e4rtus, kui mitte.<\/li>\n<\/ol>\n<p>Minu funktsioon n\u00e4eb v\u00e4lja selline:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8684cf5.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-158448-61e6de8684cf5.png\" alt=\"Lisage kohandatud vaade k\u00f5igi postituste ekraanile\" ><\/a><\/p>\n<p>Seda saaks lihtsustada ka kolmeosalise operaatoriga, kuid et see oleks v\u00f5imalikult loetav, j\u00e4tan selle praegu nii.<\/p>\n<h4>M\u00e4\u00e4rake kategooria nimi<\/h4>\n<p>See konkreetne funktsioon on tegelikult v\u00e4ga lihtne ja kuigi oleme harjunud v\u00f5tma kasutajate panuse suures osas oma tegemistest, hakkame seda v\u00e4\u00e4rtust k\u00f5vasti kodeerima.<\/p>\n<p>Selleks salvestame selle lihtsalt muutujasse, mis edastatakse kogu \u00fclej\u00e4\u00e4nud koodis.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8963b8b.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-158448-61e6de8963b8b.png\" alt=\"Lisage kohandatud vaade k\u00f5igi postituste ekraanile\" ><\/a><\/p>\n<p>N\u00e4gite, et muutuja edastati eelnevalt \u00fclaltoodud funktsiooni ja n\u00e4ete seda ka l\u00e4htekoodi l\u00f5plikus versioonis.<\/p>\n<h4>Tooge postituste tulemused kategooriaga<\/h4>\n<p>Selleks peame tegema kahte asja:<\/p>\n<ol>\n<li>Tooge alla k\u00f5ik <code>object_id<\/code>kirjed, millel on selle kategooria ID,<\/li>\n<li>Filtreerige sisu, mis pole nende postituste jaoks m\u00f5eldud.<\/li>\n<\/ol>\n<p>Siin on paar asja, mida tahan mainida. Esiteks kasutame <code>get_cat_ID<\/code>WordPressi pakutavat funktsiooni. See hangib sissetuleva nime alusel kategooria ID.<\/p>\n<p>Teiseks kasutan elemendi postitamise oleku uurimiseks kahte funktsiooni \u2013 millest \u00fcks on silmus. See ei ole k\u00f5ige t\u00f5husam viis seda teha. Selle asemel v\u00f5iksime kasutada elegantsemat p\u00e4ringut ainult postituste toomiseks; selle esimene iteratsioon on aga m\u00f5eldud n\u00e4itama, kuidas seda mitte ainult maast madalast teha, vaid ka publikule, kes ei pruugi olla koodi kirjutamise muude aspektidega nii rahul.<\/p>\n<p>Sellega saame k\u00f5ik WordPressi kirjed, mis on m\u00e4rgitud kategoriseerimata, j\u00e4rgmiselt.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8c7738c.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-158448-61e6de8c7738c.png\" alt=\"Lisage kohandatud vaade k\u00f5igi postituste ekraanile\" ><\/a><\/p>\n<p>Ja sellega v\u00f5tame tulemused ja saadame need sellesse funktsiooni, mis tagastab elementide arvu, mis on ainult postitused.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8fa1d77.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-158448-61e6de8fa1d77.png\" alt=\"Lisage kohandatud vaade k\u00f5igi postituste ekraanile\" ><\/a><\/p>\n<p>Sellega on meil suurem osa sellest, mida vajame oma vaateankru kokkupanemiseks.<\/p>\n<h4>Loo vaateankur<\/h4>\n<p>N\u00fc\u00fcd, kui meil on olemas k\u00f5ik vaateankru loomiseks vajalikud funktsioonid, peame need <code>sprintf<\/code>turvaliseks stringivorminguks kokku panema.<\/p>\n<p>Eesm\u00e4rk on luua ankur, mis:<\/p>\n<ul>\n<li>Paistab, et \u00fclej\u00e4\u00e4nud ankrud,<\/li>\n<li>N\u00e4itab postituste arvu,<\/li>\n<li>See on paksus kirjas, kui vaatate nimetatud postitusi.<\/li>\n<\/ul>\n<p>Selleks peame looma lingi ja lisama \u00f5iged p\u00e4ringustringi argumendid. See t\u00e4hendab, et loome lingi aadressile, mis <code>edit.php<\/code>sisaldab argumente:<\/p>\n<ul>\n<li>kategooria ID,<\/li>\n<li>postituse t\u00fc\u00fcp,<\/li>\n<li>ja k\u00f5ik postitused, millel on see kategooria.<\/li>\n<\/ul>\n<p>J\u00e4rgmiseks peame lisama:<\/p>\n<ul>\n<li>mis tahes atribuudid lingi kujundamiseks,<\/li>\n<li>kategooria nimi,<\/li>\n<li>ja lihtsalt postituse sisu <code>post_type<\/code>.<\/li>\n<\/ul>\n<p>Selleks saame kasutada j\u00e4rgmist funktsiooni:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de92c2f38.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-158448-61e6de92c2f38.png\" alt=\"Lisage kohandatud vaade k\u00f5igi postituste ekraanile\" ><\/a><\/p>\n<p>See teeb mitut asja:<\/p>\n<ol>\n<li>Aktsepteerib <code>$views<\/code>WordPressi standardmassiivi,<\/li>\n<li>Lisab meie kohandatud ankru, nagu \u00fclalpool kirjeldatud,<\/li>\n<li>l\u00fckkab selle <code>$views<\/code>massiivi,<\/li>\n<li>Tagastab selle renderdamiseks WordPressile.<\/li>\n<\/ol>\n<p>Ja see ongi k\u00f5ik!<\/p>\n<h4>Selle testimine<\/h4>\n<p>Selle testimiseks laadige oma brauser ja te peaksite n\u00e4gema \u00fclej\u00e4\u00e4nud ankrute (nt K\u00f5ik, Avaldatud, Minu, Pr\u00fcgikast, Ajastatud jne) k\u00f5rval uut Uncategorized linki.<\/p>\n<p>P\u00e4rast seda muutke postituste kategooriat ja eemaldage Kategooriata, seej\u00e4rel k\u00fclastage uuesti v\u00f5i v\u00e4rskendage lehte K\u00f5ik postitused ja n\u00e4ete, et link on aktiivne ja stiiliga, olenevalt sellest, kuidas te seda vaatate, ning see sisaldab kategoriseeritud postituste arvu. sellisena ka.<\/p>\n<h2>N\u00fc\u00fcd GitHubisse<\/h2>\n<p>Laadisin <a href=\"https:\/\/github.com\/tommcfarlin\/add-custom-view\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selle pistikprogrammi esimese iteratsiooni GitHubisse<\/a>, et saaksite selle alla laadida ja <code>mu-plugins<\/code>testimiseks oma kataloogi paigutada.<\/p>\n<p>Eelseisvates postitustes tahaksin alustada sellest, et muuta see objektorienteeritud paradigmaks, nii et need on muudatused, mis tulevad pistikprogrammi ja tulevaste postituste sisusse.<\/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>Selle mu-pluginaga n\u00e4itan, kuidas lisada WordPressi lehele K\u00f5ik postitused kohandatud vaade m\u00e4\u00e4ratud kategooria alusel.<\/p>\n","protected":false},"author":1,"featured_media":158449,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[833,894,842,802,863],"tags":[1165],"class_list":["post-231519","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","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\/231519","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=231519"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231519\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/158449"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=231519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=231519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=231519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}