Lajittele WordPress-viestit päivämäärän mukaan
TL;DR: Jos etsit helppoa tapaa lajitella WordPress-viestit päivämäärän mukaan (olipa se laskeva tai nouseva) hallintoalueella ilman, että käyttäjät napsauttavat Päivämäärä-sarakkeen otsikkoa, voit tehdä sen käyttämällä pre_get_posts
suodatinta joka tarjoaa viittauksen WP_Query
sivulla käynnissä olevaan ilmentymään.
Katso esimerkkejä koodista tämän tekemiseen artikkelin loppuosasta.
Lajittele WordPress-viestit
Tämä artikkeli on kirjoitettu siten, että siinä oletetaan, että määrität luokkapohjaisen. Tämä tarkoittaa, että suodattimen asetukset määritetään funktiossa, kuten init
ja se kutsuu public
luokassa funktion nimen, kuten sort_articles_by_recent_time
.
Lopuksi se määrittää prioriteetin 10
ja määrittää funktion, joka hyväksyy yksittäisen argumentin (joka on WP_Query
.
Lisää ensin seuraava suodatin:
add_action( 'pre_get_posts', [ $this, 'sort_articles_by_recent_time' ], 10, 1 );
Lisää sitten seuraava toiminto:
Näin se toimii:
- Huomaa ensimmäiset ehdolliset tarkistukset, jos emme ole hallintoalueella tai jos emme ole
edit.php
sivulla (joka on viestiluettelosivu), jätämme toiminnon. Tämä on vartiointilauseke tai varhainen palautus. - Jos täytämme molemmat kriteerit, päivitämme kyselyn niin, että se järjestyy postauksiin päivämäärän mukaan laskevassa järjestyksessä. Tämä tarkoittaa, että viimeisimmät päivämäärät näkyvät aina yläreunassa.
Tämä ei ota huomioon postauksen tilaa (joten jos se on draft
tai viesti, jolla on publish
tila, sillä ei ole väliä). Lisäksi tämä estää käyttäjiä joutumasta napsauttamaan Päivämäärä-sarakkeen otsikkoa lajitellakseen tuloksia tarpeen mukaan, jos tämä on jotain, mitä haluat ratkaisussasi.
Viitteet
[pre_get_posts](https://developer.wordpress.org/reference/hooks/pre_get_posts/)
[WP_Query](https://developer.wordpress.org/reference/classes/wp_query/)