{"id":232042,"date":"2023-01-05T10:26:00","date_gmt":"2023-01-05T07:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232042"},"modified":"2022-11-10T07:21:38","modified_gmt":"2022-11-10T04:21:38","slug":"lajittele-wordpress-viestit-paeivaemaeaeraen-mukaan","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/lajittele-wordpress-viestit-paeivaemaeaeraen-mukaan\/","title":{"rendered":"Lajittele WordPress-viestit p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n mukaan"},"content":{"rendered":"<p><strong>TL;DR:<\/strong> Jos etsit helppoa tapaa lajitella WordPress-viestit p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n mukaan (olipa se laskeva tai nouseva) hallintoalueella ilman, ett\u00e4 k\u00e4ytt\u00e4j\u00e4t napsauttavat P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4-sarakkeen otsikkoa, voit tehd\u00e4 sen k\u00e4ytt\u00e4m\u00e4ll\u00e4 <code>pre_get_posts<\/code>suodatinta joka tarjoaa viittauksen <code>WP_Query<\/code>sivulla k\u00e4ynniss\u00e4 olevaan ilmentym\u00e4\u00e4n.<\/p>\n<p>Katso esimerkkej\u00e4 koodista t\u00e4m\u00e4n tekemiseen artikkelin loppuosasta.<\/p>\n<h2>Lajittele WordPress-viestit<\/h2>\n<p>T\u00e4m\u00e4 artikkeli on kirjoitettu siten, ett\u00e4 siin\u00e4 oletetaan, ett\u00e4 m\u00e4\u00e4rit\u00e4t luokkapohjaisen. T\u00e4m\u00e4 tarkoittaa, ett\u00e4 suodattimen asetukset m\u00e4\u00e4ritet\u00e4\u00e4n funktiossa, kuten <code>init<\/code>ja se kutsuu <code>public<\/code>luokassa funktion nimen, kuten <code>sort_articles_by_recent_time<\/code>.<\/p>\n<p>Lopuksi se m\u00e4\u00e4ritt\u00e4\u00e4 prioriteetin <code>10<\/code>ja m\u00e4\u00e4ritt\u00e4\u00e4 funktion, joka hyv\u00e4ksyy yksitt\u00e4isen argumentin (joka on <code>WP_Query<\/code>.<\/p>\n<p>Lis\u00e4\u00e4 ensin seuraava suodatin:<\/p>\n<pre><code>add_action( 'pre_get_posts', [ $this, 'sort_articles_by_recent_time' ], 10, 1 );<\/code><\/pre>\n<p>Lis\u00e4\u00e4 sitten seuraava toiminto:<\/p>\n<pre><code>public function sort_articles_by_recent_time( WP_Query $query) {\n  global $pagenow;\n  if (! is_admin() || 'edit.php' !== $pagenow) {\n    return;\n  }\n\n  $query-&gt;set( 'orderby', 'date' );\n  $query-&gt;set( 'order', 'desc' );\n }<\/code><\/pre>\n<p>N\u00e4in se toimii:<\/p>\n<ol>\n<li>Huomaa ensimm\u00e4iset ehdolliset tarkistukset, jos emme ole hallintoalueella tai jos emme ole <code>edit.php<\/code>sivulla (joka on viestiluettelosivu), j\u00e4t\u00e4mme toiminnon. T\u00e4m\u00e4 on vartiointilauseke tai varhainen palautus.<\/li>\n<li>Jos t\u00e4yt\u00e4mme molemmat kriteerit, p\u00e4ivit\u00e4mme kyselyn niin, ett\u00e4 se j\u00e4rjestyy postauksiin p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n mukaan laskevassa j\u00e4rjestyksess\u00e4. T\u00e4m\u00e4 tarkoittaa, ett\u00e4 viimeisimm\u00e4t p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4t n\u00e4kyv\u00e4t aina yl\u00e4reunassa.<\/li>\n<\/ol>\n<p>T\u00e4m\u00e4 ei ota huomioon postauksen tilaa (joten jos se on <code>draft<\/code>tai viesti, jolla on <code>publish<\/code>tila, sill\u00e4 ei ole v\u00e4li\u00e4). Lis\u00e4ksi t\u00e4m\u00e4 est\u00e4\u00e4 k\u00e4ytt\u00e4ji\u00e4 joutumasta napsauttamaan P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4-sarakkeen otsikkoa lajitellakseen tuloksia tarpeen mukaan, jos t\u00e4m\u00e4 on jotain, mit\u00e4 haluat ratkaisussasi.<\/p>\n<h3>Viitteet<\/h3>\n<ul>\n<li><code>[pre_get_posts](https:\/\/developer.wordpress.org\/reference\/hooks\/pre_get_posts\/)<\/code><\/li>\n<li><code>[WP_Query](https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/)<\/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>Helppo tapa lajitella WordPress-viestit p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n mukaan (olipa se laskeva tai nouseva) hallintoalueella ilman, ett\u00e4 k\u00e4ytt\u00e4j\u00e4t napsauttavat P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4-sarakkeen otsikkoa<\/p>\n","protected":false},"author":1,"featured_media":158594,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[895,834,843,803,864],"tags":[1166],"class_list":["post-232042","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","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\/232042","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=232042"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232042\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/158594"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=232042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=232042"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=232042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}