✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Sortera WordPress-inlägg efter datum

33

TL;DR: Om du letar efter ett enkelt sätt att sortera WordPress-inlägg efter datum (vare sig det är fallande eller stigande) i administrationsområdet utan att användare klickar på kolumnrubriken Datum, kan du göra det genom att använda pre_get_postsfiltret som ger en referens till instansen WP_Querysom körs på sidan.

För exempel i kod på hur man gör det, kolla in resten av artikeln.

Sortera WordPress-inlägg

Den här artikeln är skriven så att den förutsätter att du är inställd i klassbaserat. Detta betyder att uppsättningen för filtret är definierad i en funktion som t.ex. initoch den anropar ett publicfunktionsnamn på klassen som sort_articles_by_recent_time.

Slutligen definierar den en prioritet för 10och specificerar funktionen som kommer att acceptera ett enda argument (som är en instans av WP_Query.

Lägg först till följande filter:

add_action( 'pre_get_posts', [ $this, 'sort_articles_by_recent_time' ], 10, 1 );

Lägg sedan till följande funktion:

public function sort_articles_by_recent_time( WP_Query $query) {
  global $pagenow;
  if (! is_admin() || 'edit.php' !== $pagenow) {
    return;
  }

  $query->set( 'orderby', 'date' );
  $query->set( 'order', 'desc' );
 }

Så här fungerar det:

  1. Notera de första villkorliga kontrollerna om vi inte är i administrationsområdet eller om vi inte är på edit.phpsidan (som är postlistningssidan), lämnar vi helt enkelt funktionen. Detta är en vaktklausul eller ett tidigt återlämnande.
  2. Om vi ​​uppfyller båda dessa kriterier kommer vi att uppdatera frågan så att den ordnar till inlägg efter datum i fallande ordning. Detta innebär att de senaste datumen alltid kommer att listas överst.

Detta tar inte hänsyn till inläggets status (så om det är ett drafteller ett inlägg med publishstatusen spelar det ingen roll). Vidare kommer detta att förhindra att användare behöver klicka på kolumnrubriken Datum för att sortera resultaten efter behov om detta är något du så önskar i din lösning.

Referenser

  • [pre_get_posts](https://developer.wordpress.org/reference/hooks/pre_get_posts/)
  • [WP_Query](https://developer.wordpress.org/reference/classes/wp_query/)

Inspelningskälla: tommcfarlin.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer