{"id":232095,"date":"2023-01-07T16:55:00","date_gmt":"2023-01-07T13:55:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232095"},"modified":"2023-01-07T16:55:51","modified_gmt":"2023-01-07T13:55:51","slug":"hae-ohjelmallisesti-wordpress-viestejae-ajanjakson-mukaan","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/hae-ohjelmallisesti-wordpress-viestejae-ajanjakson-mukaan\/","title":{"rendered":"Hae ohjelmallisesti WordPress-viestej\u00e4 ajanjakson mukaan"},"content":{"rendered":"<p><strong>TL;DR:<\/strong> T\u00e4ss\u00e4 viestiss\u00e4 jaettu koodi n\u00e4ytt\u00e4\u00e4, kuinka voit muokata <strong>Kaikki viestit<\/strong> -sivulla suoritettavaa kysely\u00e4, jotta voit rajoittaa viestien haun tietylle ajanjaksolle.<\/p>\n<p>Siit\u00e4 on v\u00e4h\u00e4n aikaa, kun <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/hae-viestien-metatiedoista-wordpressin-hallinta-alueelta\/\" title=\"viimeksi kirjoitin\">viimeksi kirjoitin<\/a> suodattimen k\u00e4ytt\u00e4misest\u00e4 tietyll\u00e4 sivulla, kuten WordPressin <strong>Kaikki viestit<\/strong> -alueella, <code>post_where<\/code>suoritettavan hakukyselyn muokkaamiseen. Mutta kun otetaan huomioon, ett\u00e4 viestien \u2013 ja mukautettujen viestityyppien \u2013 hakemiseen on useita eri tapoja, t\u00e4t\u00e4 yht\u00e4 suodatinta voidaan k\u00e4ytt\u00e4\u00e4 useilla eri tavoilla.<\/p>\n<h2>Hae viestej\u00e4 ajanjakson mukaan<\/h2>\n<p>Jotta voit etsi\u00e4 viestej\u00e4 ajanjakson mukaan, seuraavaa on tapahduttava:<\/p>\n<ol>\n<li>Rekister\u00f6i takaisinsoitto <code>posts_where<\/code>suodattimella,<\/li>\n<li>Varmista, ett\u00e4 funktio hyv\u00e4ksyy merkkijonon <code>where<\/code>ja <code>WP_Query<\/code>sivulla k\u00e4ynniss\u00e4 olevan esiintym\u00e4n<\/li>\n<li>Hanki t\u00e4m\u00e4n p\u00e4iv\u00e4n p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 ja kellonaika sek\u00e4 nelj\u00e4n viikon takainen p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 ja aika<\/li>\n<li>Rajaa <code>where<\/code>tulokset p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4\u00e4n lis\u00e4\u00e4m\u00e4ll\u00e4 lauseke<\/li>\n<li><code>return<\/code>p\u00e4ivitetty kysely.<\/li>\n<\/ol>\n<pre><code>&lt;?php\nadd_filter( \n  'posts_where',\n  function (string $where, WP_Query $query ): string {\n    global $wpdb;\n\n    $todays_date   = gmdate( 'Y-m-d H:i:s', strtotime( 'now') );\n    $four_weeks_ago = gmdate( 'Y-m-d H:i:s', strtotime( '-4 weeks') );\n\n    $prepend = $wpdb-&gt;prepare(\n      \" AND {$wpdb-&gt;posts}.post_date &gt; %s\",\n      $four_weeks_ago\n    );\n\n    $prepend .= $wpdb-&gt;prepare(\n      \" AND {$wpdb-&gt;posts}.post_date &lt; %s\",\n      $todays_date\n    );\n\n    return $prepend. $where;\n  }, 101, 2\n);<\/code><\/pre>\n<p>T\u00e4m\u00e4n funktion tulos on muokattu kysely, joka rajoittaa viestit, jotka palautetaan m\u00e4\u00e4ritettyyn p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4\u00e4n ja kellonaikaan menness\u00e4. Nimitt\u00e4in nelj\u00e4 viikkoa sitten tuntiin, minuuttiin ja sekuntiin asti.<\/p>\n<p>Voit muuttaa t\u00e4t\u00e4 p\u00e4ivitt\u00e4m\u00e4ll\u00e4 funktiolle v\u00e4litetyn <code>-4 weeks<\/code>merkkijonon <code>strtotime<\/code>(mutta suosittelen tutustumaan alla linkitettyyn PHP-k\u00e4sikirjasivuun ymm\u00e4rt\u00e4\u00e4ksesi, kuinka t\u00e4m\u00e4 funktio toimii t\u00e4llaisen kielen kanssa).<\/p>\n<h2>Viitteet<\/h2>\n<ul>\n<li><code>[posts_where](https:\/\/developer.wordpress.org\/reference\/hooks\/posts_where\/)<\/code><\/li>\n<li><code>[WP_Query](https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/)<\/code><\/li>\n<li><code>[wpdb](https:\/\/developer.wordpress.org\/reference\/classes\/wpdb\/)<\/code><\/li>\n<li><code>[gmdate](https:\/\/www.php.net\/manual\/en\/function.gmdate.php)<\/code><\/li>\n<li><code>[strtotime](https:\/\/www.php.net\/manual\/en\/function.strtotime.php)<\/code><\/li>\n<\/ul>\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>T\u00e4ss\u00e4 viestiss\u00e4 jaettu koodi n\u00e4ytt\u00e4\u00e4, kuinka voit etsi\u00e4 viestej\u00e4 ajanjakson mukaan Kaikki viestit -sivulla.<\/p>\n","protected":false},"author":1,"featured_media":158377,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,834,843,803,864],"tags":[1166],"class_list":["post-232095","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-opas-aloittelijoille","category-opetusohjelmia","category-php-5","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=232095"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232095\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/158377"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=232095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=232095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=232095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}