{"id":233666,"date":"2023-02-19T15:43:00","date_gmt":"2023-02-19T12:43:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233666"},"modified":"2022-11-11T08:44:38","modified_gmt":"2022-11-11T05:44:38","slug":"juhend-wordpressi-globaalse-paeringu-muutmine","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/juhend-wordpressi-globaalse-paeringu-muutmine\/","title":{"rendered":"Juhend: WordPressi globaalse p\u00e4ringu muutmine"},"content":{"rendered":"\n<p>M\u00f5nel juhul peate v\u00f5ib-olla muutma \u00fcldist postitusp\u00e4ringut, mida WordPress t\u00e4idab igal teie k\u00fclastataval lehel \u2013 nii administraatoril kui ka kasutajaliideses. Selles juhendis vaatleme, millist konksu kasutada ja kuidas p\u00e4ringu argumente oma maitse j\u00e4rgi muuta.<\/p>\n<h2>Millist konksu kasutada<\/h2>\n<p>K\u00f5igepealt pead teadma, millisele konksule oma kood lisada. Vajame konksu, mis toimub kohe p\u00e4rast seda, kui WordPress on k\u00f5ik argumendid seadistanud, kuid enne tegeliku p\u00e4ringu k\u00e4ivitamist. Selleks kasutame toimingut <code>pre_get_posts<\/code>.<\/p>\n<p>Selles konksus saate \u00fche parameetri; mis on <code>WP_Query<\/code>objekt, millega WordPress hiljem p\u00e4ringut k\u00e4ivitab. Teete objektis muudatused, kuid te ei pea seda tagastama, kuna WordPress k\u00e4ivitab p\u00e4ringu koos muudetud objektiga.<\/p>\n<pre><code>add_action('pre_get_posts', function($query) {\n    \/\/ Add your code here\n});<\/code><\/pre>\n<p>P\u00e4ringu muutmine eeldab suure t\u00f5en\u00e4osusega m\u00f5ne tingimusm\u00e4rgendi kasutamist, et m\u00e4\u00e4rata need juhtumid, mida soovite seda muuta. N\u00e4iteks v\u00f5ite soovida sihtida p\u00e4ringut ainult otsingutulemustes v\u00f5i kategooriavaadetes.<\/p>\n<h2>Tingimuslikud sildid<\/h2>\n<p>WordPressil on hunnik <a href=\"https:\/\/codex.wordpress.org\/Conditional_Tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tingimuslikke silte<\/a>, mille abil saate m\u00e4\u00e4rata, millistel juhtudel soovite koodi lisada. Tingimuslik silt on lihtsalt funktsioon, mis tagastab olenevalt WordPressi olekust t\u00f5ene v\u00f5i v\u00e4\u00e4r. Levinud tingimusm\u00e4rgendite n\u00e4ited on <code>is_admin()<\/code>m\u00f5eldud selleks, et kontrollida, kas oleme praegu administraatoris v\u00f5i kasutajaliideses, <code>is_singular()<\/code>kas oleme kasutajaliideses \u00fchel postitusel v\u00f5i lehel ja <code>is_search()<\/code>kui oleme otsingutulemuste lehel.<\/p>\n<p>Pidage meeles, et konks <code>pre_get_posts<\/code>t\u00f6\u00f6tab nii administraatori kui ka kasutajaliidese jaoks. Kui soovite m\u00f5jutada ainult globaalset p\u00e4ringut kasutajaliideses, peate oma koodi m\u00e4hkima tingimusm\u00e4rgendi if-kontrolli sisse <code>is_admin()<\/code>.<\/p>\n<h3>M\u00e4rkus tingimuslike m\u00e4rgendite kohta<code>pre_get_posts<\/code><\/h3>\n<p>Tingimuslikud sildid on suurep\u00e4rased ja k\u00f5ik, kuid nende sees kasutamisel tuleb meeles pidada m\u00f5nda asja <code>pre_get_posts<\/code>.<\/p>\n<p>Esiteks peate tutvuma sildiga <code>is_main_query()<\/code>. Toimingut <code>pre_get_posts<\/code>k\u00e4itatakse tegelikult iga lehe laadimise korral mitu korda. N\u00e4iteks <code>pre_get_posts<\/code>k\u00e4ivitatakse iga men\u00fc\u00fc (sh vidinate) loomisel. Tegeliku globaalse p\u00e4ringu, nt kategooriaarhiivi v\u00f5i otsingutulemuste postituste muutmiseks peate sihtima &quot;p\u00f5hip\u00e4ringut&quot;, kasutades <code>is_main_query()<\/code>.<\/p>\n<p>Teiseks peate olema teadlik juhtudest, kus peate funktsiooni &quot;iseseisvalt&quot; kutsumise asemel kontrollima tingimuslikke silte antud objektil. Tavaliselt, kui kasutate tingimuslikke silte, kirjutaksite selle j\u00e4rgmiselt:<\/p>\n<pre><code>if (is_main_query()) {\n    \/\/ Do stuff\n}<\/code><\/pre>\n<p>Kui aga kasutate <code>pre_get_posts<\/code>, on m\u00f5ned tingimuslikud sildid, mida peate objektile rakendama. N\u00e4iteks:<\/p>\n<pre><code>add_action('pre_get_posts', function($query) {\n    if ($query-&gt;is_main_query()) {\n        \/\/ Add your code here\n    }\n});<\/code><\/pre>\n<p>Peaksite alati kontrollima <code>is_main_query()<\/code>punktis toodud objekti <code>pre_get_posts<\/code>. Lisateabe saamiseks lugege <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/pre_get_posts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pre_get_posts dokumentatsiooni<\/a>.<\/p>\n<p>See on n\u00e4ide kontrollimise kohta, kas me pole administraatoris ja kas oleme peamise postituse p\u00e4ringus:<\/p>\n<pre><code>add_action('pre_get_posts', function($query) {\n    if (!is_admin() &amp;&amp; $query-&gt;is_main_query()) {\n        \/\/ Add your code here\n    }\n});<\/code><\/pre>\n<h2>Argumentide muutmine v\u00f5i lisamine<\/h2>\n<p>Kuna me t\u00f6\u00f6tame <code>WP_Query<\/code>objektiga, v\u00f5ite vaadata <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP_Query dokumentatsiooni<\/a>, kuidas luua oma argumente postituste p\u00e4ringu kohandamiseks. Pidage meeles, et argumendid on juba t\u00e4idetud. Sel juhul peate olemasolevad v\u00e4\u00e4rtused lisama v\u00f5i muutma. V\u00f5i eemaldage need, mida soovite eemaldada.<\/p>\n<p>Argumentide m\u00e4\u00e4ramiseks kasutate <code>set()<\/code>funktsiooni <code>WP_Query<\/code>objektil. Meetod aktsepteerib kahte argumenti, argumendiv\u00f5tit ja teiseks v\u00e4\u00e4rtust. N\u00e4iteks <code>posts_per_page<\/code>argumendi seadistamine toimub j\u00e4rgmiselt:<\/p>\n<pre><code>add_action('pre_get_posts', function($query) {\n    if (!is_admin() &amp;&amp; $query-&gt;is_main_query()) {\n        $query-&gt;set('posts_per_page', 20);\n    }\n});<\/code><\/pre>\n<p>Juhtudel, kui soovite lisada v\u00f5i muuta juba olemasolevat argumenti, teete seda tavaliselt nii, et esmalt salvestate olemasoleva argumendi muutujas. Selleks saate meetodit <code>get()<\/code>kasutada. Seej\u00e4rel muudate muutujat, lisades v\u00f5i \u00fchendades massiive v\u00f5i muud. Ja l\u00f5puks <code>set()<\/code>asendate muudetud muutuja tagasi p\u00e4ringuobjektiga. Soovitan kasutada <code>var_dump()<\/code>objektil, et n\u00e4ha, mida see sisaldab, ja see on ka hea viis kontrollida, kas tingimussildid on \u00f5iged.<\/p>\n<p>Siin on kiire n\u00e4ide kasutamisest <code>get()<\/code>(lihtsalt kontrollige, kas see on t\u00fchi) ja kui jah, lisage oma argumendid nupuga <code>set()<\/code>.<\/p>\n<pre><code>add_action('pre_get_posts', function($query) {\n    if (!is_admin() &amp;&amp; $query-&gt;is_main_query()) {\n        if (!$query-&gt;get('meta_query')) {\n            $query-&gt;set('meta_query', [\/ your arguments here \/]);\n        }\n    }\n});<\/code><\/pre>\n<h3>M\u00e4rkus tax_query kohta<\/h3>\n<p><code>WP_Tax_Query<\/code>WordPressil on taksonoomia () osa k\u00e4sitlemiseks eraldi alamklassid <code>WP_Query<\/code>. Kui teil on vaja teha keerukamaid taksonoomiap\u00e4ringu muudatusi, v\u00f5ib <code>pre_get_posts<\/code>toiming olla liiga vara. M\u00f5ned v\u00e4\u00e4rtused v\u00f5ivad olla t\u00fchjad, kuna need t\u00e4idetakse hiljem. Sel juhul v\u00f5iks olla parem kasutada <code>parse_tax_query<\/code>toimingut <code>pre_get_posts<\/code>. Lugege <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/parse_tax_query\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selle konksu dokumentatsiooni,<\/a> et n\u00e4ha, kas see on teie jaoks.<\/p>\n<h2>J\u00e4reldus<\/h2>\n<p>Argumendid, mida lisate v\u00f5i muudate, s\u00f5ltuvad t\u00e4ielikult sellest, mida soovite teha, kuid teil peaks n\u00fc\u00fcd olema \u00fclevaade strateegiatest, mille abil globaalse p\u00e4ringuga hakkama saada. Kui teil on vaja saada \u00fclevaade <code>WP_Query<\/code>objektist ja selle argumentide kasutamisest, v\u00f5ib minu postitus postituste <a href=\"http:\/\/awhitepixel.com\/blog\/how-to-query-posts-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">p\u00e4ringute<\/a> kohta huvi pakkuda.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sellest postitusest \u00f5pime, kuidas muuta globaalset WordPressi p\u00e4ringut, millist konksu kasutada ja kuidas argumente oma maitse j\u00e4rgi muuta.<\/p>\n","protected":false},"author":1,"featured_media":152576,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[894,833,894,916,916,1110,842,833,842,863,863],"tags":[1165],"class_list":["post-233666","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kood","category-juhend-algajatele","category-muud","category-n-a","category-opetused","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233666","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=233666"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233666\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/152576"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}