{"id":230723,"date":"2022-12-16T10:39:00","date_gmt":"2022-12-16T07:39:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230723"},"modified":"2022-12-07T11:40:13","modified_gmt":"2022-12-07T08:40:13","slug":"wordpressi-lehekueljed-lihtne-utiliit-ja-miks","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-lehekueljed-lihtne-utiliit-ja-miks\/","title":{"rendered":"WordPressi lehek\u00fcljed: lihtne utiliit (ja miks)"},"content":{"rendered":"\n<p>WordPressi mallide loomisel on teil \u00fcldiselt lehek\u00fclgede jagamise funktsioonid, mis p\u00e4rinevad rakendusest endast.<\/p>\n<p>Need h\u00f5lmavad selliseid asju nagu:<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_next_post\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_next_post()<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_next_post_link\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_next_post_link()<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_previous_post\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hanki_eelmine_post()<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_previous_post_link\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_previous_post_link()<\/a><\/li>\n<\/ul>\n<p>Ja on veel m\u00f5ned postitused, mis annavad teile taksonoomiate \u00fcksikasjalikumat teavet, n\u00e4iteks <strong><a href=\"https:\/\/tommcfarlin.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_adjacent_post()<\/a><\/strong>.<\/p>\n<p>Soovitan lugeda k\u00f5iki \u00fclaltoodud linke, kuna need on kasulikud, kui loote teemat, t\u00f6\u00f6tate kohandatud postitust\u00fc\u00fcpidega v\u00f5i soovite lihtsalt m\u00f5nda levinud mallim\u00e4rgendit s\u00fcgavamalt m\u00f5ista.<\/p>\n<p>Kui aga otsite lihtsat viisi oma WordPressi lehek\u00fclgede muutmise utiliidi kirjutamiseks (mille p\u00f5hjust ma l\u00fchidalt selgitan), siis \u00fclej\u00e4\u00e4nud postitus h\u00f5lmab t\u00e4pselt seda.<\/p>\n<h2>Kohandatud WordPressi lehek\u00fcljed<\/h2>\n<p>Esiteks, kui loote kellelegi veebirakendust, on kindlasti n\u00fcansse, mille puhul WordPressi algfunktsioonid ei pruugi t\u00f6\u00f6tada. V\u00f5ib-olla ei t\u00f6\u00f6ta see ootusp\u00e4raselt, ei t\u00f6\u00f6ta nii nagu ette n\u00e4htud v\u00f5i ei vasta teie vajadustele.<\/p>\n<p>Igal juhul ei t\u00e4henda see, et lehek\u00fclgede arvu ei saaks teie eesm\u00e4rkide t\u00e4itmiseks luua. L\u00f5ppkokkuv\u00f5ttes on lehek\u00fclgede jagamise tuum \u2013 eriti kui see puudutab \u00fche postituse lehek\u00fclgedele kirjutamist \u2013 p\u00f5hiliselt j\u00e4rgmine:<\/p>\n<p>Vaadake praegusest postitusest, kas postitus on enne seda olemas, ja vaadake, kas postitus on p\u00e4rast seda. Kui kumbagi t\u00fc\u00fcpi postitus on olemas, lisage sellele link; muidu \u00e4ra.<\/p>\n<p>Siit saame kindlaks teha, et vajame j\u00e4rgmisi funktsioone.<\/p>\n<ol>\n<li>viis kindlaks teha, kas praeguse postituse taga on postitus,<\/li>\n<li>viis kindlaks teha, kas postitus on p\u00e4rast praegust postitust olemas,<\/li>\n<li>viis antud postituse k\u00e4ttesaamiseks,<\/li>\n<li>viis antud postituse p\u00fcsilingi hankimiseks.<\/li>\n<\/ol>\n<p>T\u00f6\u00f6tan siiski selle nimel, et olla \u00fclaltoodud keeles v\u00e4ga t\u00e4pne, sest postitusel, mis on antud postituse taga v\u00f5i p\u00e4rast, ei pruugi olla ID-d, mis on praeguse postituse ID-st \u00fcks v\u00e4hem.<\/p>\n<p>See on lihtsalt esimene postitus, mis on avaldatud ja mida saab hankida m\u00f5lemas suunas, eks?<\/p>\n<p>Seda silmas pidades t\u00e4hendab see, et vajame kahte p\u00e4ringut:<\/p>\n<ul>\n<li>p\u00e4ring praeguse postituse taga oleva postituse toomiseks,<\/li>\n<li>p\u00e4ring postituse toomiseks p\u00e4rast praegust postitust.<\/li>\n<\/ul>\n<p>Selle n\u00e4ite puhul eeldan, et teil on funktsiooni <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_the_id\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_the_ID()<\/a><\/strong> kaudu juurdep\u00e4\u00e4s praeguse postituse ID-le .<\/p>\n<h3>Hankige postitus praeguse postituse taha<\/h3>\n<p>Selleks peame looma lihtsa p\u00e4ringu, mis haarab m\u00e4\u00e4ratud postitust\u00fc\u00fcbi andmebaasist \u00fche avaldatud postituse, mis on seotud praeguse postituse asukohaga.<\/p>\n<p><strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/763a68936f225834bba671a3d0a8b9f6#file-00-previous-post-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Seda saame teha<\/a><\/strong>, kui piirame tulemuste komplekti \u00fchega, j\u00e4rjestame tulemused kahanevas j\u00e4rjekorras ja v\u00f5rdleme postituse ID v\u00e4\u00e4rtust:<\/p>\n<pre><code>&lt;?php\n\nglobal $wpdb;\n$results = $wpdb-&gt;get_results(\n    $wpdb-&gt;prepare(\n        \"\n        SELECT *\n        FROM $wpdb-&gt;posts\n        WHERE ID &lt; (SELECT ID\n            FROM $wpdb-&gt;posts\n            WHERE ID = %d\n            AND post_type = '%s'\n            AND post_status = '%s'\n            ORDER BY ID DESC) AND post_type = '%s'\n        AND post_status = '%s'\n        ORDER BY ID DESC\n        LIMIT 1\n        \",\n        get_the_ID(),\n        'acme-custom-post-type',\n        'publish',\n        'acme-custom-post-type',\n        'publish') );<\/code><\/pre>\n<p>See annab tulemuseks hulga tulemusi, mida n\u00e4eme m\u00f5ne aja p\u00e4rast hallata.<\/p>\n<h3>Hankige postitus p\u00e4rast praegust postitust<\/h3>\n<p><strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/763a68936f225834bba671a3d0a8b9f6#file-01-next-post-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">J\u00e4rgmise postituse<\/a><\/strong> jaoks kirjutame sarnase p\u00e4ringu. Kuid selle asemel otsime j\u00e4rgmist v\u00e4\u00e4rtust, mis on suurem ja mis on praegusest ID-st ees:<\/p>\n<pre><code>&lt;?php\n\nglobal $wpdb;\n$results = $wpdb-&gt;get_results(\n    $wpdb-&gt;prepare(\n        \"\n        SELECT *\n        FROM $wpdb-&gt;posts\n        WHERE ID &gt; (SELECT ID\n            FROM $wpdb-&gt;posts\n            WHERE ID = %d\n            AND post_type = '%s'\n            AND post_status = '%s'\n            ORDER BY ID ASC) AND post_type = '%s'\n        AND post_status = '%s'\n        ORDER BY ID ASC\n        LIMIT 1\n        \",\n        get_the_ID(),\n        'acme-custom-post-type',\n        'publish',\n        'acme-custom-post-type',\n        'publish') );<\/code><\/pre>\n<p>N\u00fc\u00fcd vajame m\u00f5nda funktsiooni, et teha kindlaks, kas postitused on olemas. Saame seda teha tagastatud tulemuste massiiviga.<\/p>\n<h3>Kontrollige, kas postitus on olemas<\/h3>\n<p>Pange t\u00e4hele, <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/763a68936f225834bba671a3d0a8b9f6#file-03-has-previous-post-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">et j\u00e4rgmises n\u00e4ites<\/a><\/strong> aktsepteerib funktsioon tulemuste massiivi ja lihtsalt tagastab, kui on olemas eelmine postitus. Sellesse funktsiooni edastatavad tulemused peaksid p\u00e4rinema \u00fclaltoodud eelmisest postitusp\u00e4ringust.<\/p>\n<p>Teiseks pange t\u00e4hele, et see on privaatne. S\u00f5ltuvalt sellest, kuidas soovite oma malle koostada, v\u00f5ite soovida oma malli avalikustada.<\/p>\n<pre><code>&lt;?php \n\/**\n * @param array $results the results of the query to determined if there are past posts\n *\n * @return bool true if there is a previous post; otherwise, false\n *\/\nprivate function hasPreviousPost($results)\n{\n    return isset($results[0]);\n}<\/code><\/pre>\n<p><strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/763a68936f225834bba671a3d0a8b9f6#file-04-has-next-post-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">J\u00e4rgmise postituse<\/a><\/strong> puhul n\u00e4eb see v\u00e4lja sama, kuid pidage meeles, et sellesse funktsiooni edastatavad tulemused p\u00e4rinevad teisest p\u00e4ringust.<\/p>\n<pre><code>&lt;?php\n\/**\n * @param array $results the results of the query to determined if there are future posts\n *\n * @return bool true if there is a next post; otherwise, false\n *\/\nprivate function hasNextPost($results)\n{\n    return isset($results[0]);\n}<\/code><\/pre>\n<p>Ja l\u00f5puks saame p\u00fcsilingi hankimiseks kasutada neid tingimuslikke funktsioone.<\/p>\n<h3>Hankige link<\/h3>\n<p>Pidage meeles, et viis, kuidas te seda funktsiooni kasutate, v\u00f5ib minu pakutavast rakendusest erineda. Nii et kui te ei pea seda privaatseks, muutke selle n\u00e4htavust ja kasutage seda vastavalt <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/763a68936f225834bba671a3d0a8b9f6#file-05-get-post-link-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vajadusele<\/a><\/strong> oma mallis .<\/p>\n<pre><code>&lt;?php\n\/**\n * @param array $results the results of the array from which to retrieve the post ID\n *\n * @return string the ID of the post to which we're going to link\n *\/\nprivate function getPostLink($results)\n{\n    return get_the_permalink($results[0]-&gt;ID);\n}<\/code><\/pre>\n<p>L\u00f5puks pange t\u00e4hele, et see funktsioon aktsepteerib tulemusi, mille te talle m\u00f5lemast p\u00e4ringust edastate, ja hangib ID atribuudi tulemuste esimesest indeksist.<\/p>\n<p>Selle p\u00f5hjuseks on asjaolu, et tulemused on piiratud \u00fchega ja see s\u00f5ltub teie tingimuslike funktsioonide kasutamisest. See t\u00e4hendab, et saate teha midagi sellist:<\/p>\n<ul>\n<li>kui on j\u00e4rgmine postitus, siis hankige j\u00e4rgmise postituse link<\/li>\n<\/ul>\n<p>Kuid teie rakendamine v\u00f5ib erineda.<\/p>\n<h2>Miks seda vaja on?<\/h2>\n<p>Seda ei pruugi vaja minna. See on kogu asi: kui kasutate WordPressi kasutusvalmis, v\u00e4ga v\u00e4heste kohandamiste v\u00f5i laiendustega ja te ei pea tegema midagi peale selle, mida see pakub, siis ei pruugi te seda vajada.<\/p>\n<p>Teisest k\u00fcljest, kui otsite viisi WordPressi lehek\u00fclgede muutmise funktsiooni juurutamiseks \u00fchele postitusele, siis see on viis seda teha, mis suudab korralikult k\u00e4sitleda konkreetset t\u00fc\u00fcpi postitusi, kuid mitte. t omama j\u00e4rjestikuseid ID-sid (ja need t\u00f6\u00f6tavad ainult postituse avaldamise olekuga).<\/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>Veebirakenduse loomisel on kindlasti n\u00fcansse, mille puhul algfunktsioonid ei pruugi t\u00f6\u00f6tada. V\u00f5imalik, et vajate kohandatud WordPressi lehek\u00fclge.<\/p>\n","protected":false},"author":1,"featured_media":236123,"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-230723","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\/230723","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=230723"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230723\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/236123"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}