{"id":231388,"date":"2023-01-05T10:09:00","date_gmt":"2023-01-05T07:09:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231388"},"modified":"2022-12-25T21:40:01","modified_gmt":"2022-12-25T18:40:01","slug":"sortuj-posty-wordpress-wedlug-daty","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/sortuj-posty-wordpress-wedlug-daty\/","title":{"rendered":"Sortuj posty WordPress wed\u0142ug daty"},"content":{"rendered":"<p><strong>TL; DR:<\/strong> Je\u015bli szukasz \u0142atwego sposobu sortowania post\u00f3w WordPress wed\u0142ug daty (malej\u0105co lub rosn\u0105co) w obszarze administracyjnym bez konieczno\u015bci klikania przez u\u017cytkownik\u00f3w nag\u0142\u00f3wka kolumny Data, mo\u017cesz to zrobi\u0107 za pomoc\u0105 <code>pre_get_posts<\/code>filtra kt\u00f3ry zawiera odwo\u0142anie do instancji <code>WP_Query<\/code>dzia\u0142aj\u0105cej na stronie.<\/p>\n<p>Aby zapozna\u0107 si\u0119 z przyk\u0142adami w kodzie, jak to zrobi\u0107, sprawd\u017a reszt\u0119 artyku\u0142u.<\/p>\n<h2>Sortuj posty WordPress<\/h2>\n<p>Ten artyku\u0142 jest napisany w taki spos\u00f3b, \u017ce zak\u0142ada twoj\u0105 konfiguracj\u0119 w oparciu o klas\u0119. Oznacza to, \u017ce konfiguracja filtra jest zdefiniowana w funkcji takiej jak <code>init<\/code>i wywo\u0142uje <code>public<\/code>nazw\u0119 funkcji w klasie, tak\u0105 jak <code>sort_articles_by_recent_time<\/code>.<\/p>\n<p>Na koniec definiuje priorytet <code>10<\/code>i okre\u015bla, \u017ce \u200b\u200bfunkcja b\u0119dzie akceptowa\u0107 pojedyncze argumenty (co jest instancj\u0105 <code>WP_Query<\/code>.<\/p>\n<p>Najpierw dodaj nast\u0119puj\u0105cy filtr:<\/p>\n<pre><code>add_action( 'pre_get_posts', [ $this, 'sort_articles_by_recent_time' ], 10, 1 );<\/code><\/pre>\n<p>Nast\u0119pnie dodaj nast\u0119puj\u0105c\u0105 funkcj\u0119:<\/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>Oto jak to dzia\u0142a:<\/p>\n<ol>\n<li>Zwr\u00f3\u0107 uwag\u0119 na pierwsze warunkowe sprawdzenia, je\u015bli nie jeste\u015bmy w obszarze administracyjnym lub je\u015bli nie ma nas na <code>edit.php<\/code>stronie (kt\u00f3ra jest stron\u0105 z list\u0105 post\u00f3w), po prostu opuszczamy funkcjonalno\u015b\u0107. To jest klauzula ochronna lub wczesny powr\u00f3t.<\/li>\n<li>Je\u015bli spe\u0142nimy oba te kryteria, zaktualizujemy zapytanie tak, aby wysy\u0142a\u0142o posty wed\u0142ug daty w porz\u0105dku malej\u0105cym. Oznacza to, \u017ce najnowsze daty b\u0119d\u0105 zawsze wy\u015bwietlane na g\u00f3rze.<\/li>\n<\/ol>\n<p>Nie uwzgl\u0119dnia to statusu posta (wi\u0119c je\u015bli jest to <code>draft<\/code>post lub post ze <code>publish<\/code>statusem, nie ma to znaczenia). Ponadto uniemo\u017cliwi to u\u017cytkownikom klikanie nag\u0142\u00f3wka kolumny Data w celu posortowania wynik\u00f3w w razie potrzeby, je\u015bli jest to co\u015b, czego pragniesz w swoim rozwi\u0105zaniu.<\/p>\n<h3>Bibliografia<\/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\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0141atwy spos\u00f3b sortowania post\u00f3w WordPress wed\u0142ug daty (malej\u0105co lub rosn\u0105co) w obszarze administracyjnym bez konieczno\u015bci klikania przez u\u017cytkownik\u00f3w nag\u0142\u00f3wka kolumny Data<\/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":[897,805,836,845,866],"tags":[1169],"class_list":["post-231388","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kod","category-php-7","category-przewodnik-dla-poczatkujacych","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=231388"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231388\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/158594"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=231388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=231388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=231388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}