Content Marketing

WordPress: Sådan sorterer du dine tilpassede indlægstype-indlæg alfabetisk

Med det nye tema (og barnetema) har jeg implementeret på Martech Zone, jeg var nødt til at genopbygge og omkode den brugerdefinerede posttype, jeg byggede til Akronymer. Jeg optimerede koden for at indsætte nogle ekstra brugerdefinerede felter, og jeg er nødt til at omdesigne arkiv- og taksonomiskabelonerne for bedre at vise de angivne akronymer.

I mit sidste tema (hvis udviklere ophørte med support), fik disse sider en del opmærksomhed, fordi de var veldokumenterede og endda viste relevante artikler til akronymet. Jeg vil fortsætte med at migrere denne funktionalitet til det nye websted, og jeg vil endda bruge en svævemetode til at vise akronymdefinitionen i stedet for at få den besøgende til at klikke på akronymlinket. Nok om det...

Brugerdefineret posttypesortering

Fordi WordPress oprindeligt var designet til blogbrug, er standarden for enhver posttype (inklusive en brugerdefineret posttype) at ordne indlæggene i omvendt kronologisk rækkefølge. Selvom det virker for nyheder og artikler, er det ikke fordelagtigt for ting som en ordliste eller en liste over akronymer. Jeg ønsker, at mine akronymer skal sorteres alfanumerisk, ikke efter den dato, de indtastede i WordPress.

Som med stort set alle funktioner i WordPress, kan dette nemt tilpasses med WordPress API. I min functions.php fil i mit barn-tema, tilføjede jeg følgende kode:

add_action( 'pre_get_posts', function ( $query ) {
	if ( $query->is_archive() && $query->is_main_query() ) { 
	  if ( get_query_var( 'post_type' ) == 'acronym' ) { 
		$query->set( 'order', 'ASC' );
		$query->set( 'orderby', 'title' );
	  };
	};
} );

pre_get_posts funktion er en handling, der udføres, når der forespørges på indlæg. I koden ovenfor er jeg i stand til at sikre, at enhver forespørgsel til brugerdefineret posttype of akronym er specifikt indstillet til at blive sorteret efter titlen i stigende rækkefølge.

Dette sætter ikke bare denne rækkefølge i outputtet af arkiv- og taksonomisiderne, det bestiller endda den tilpassede posttype alfanumerisk i WordPresss administrative panel.

Brugerdefineret posttype sorteret alfabetisk efter titel

Fordi du indstiller standardforespørgselsparametrene, kan du også tilføje andre variabler, f.eks. antallet af poster, der skal hentes (

posts_per_page). For akronymer returnerer jeg 25 poster ad gangen, hvor jeg som standard er 10 på resten af ​​webstedet.

Hvis du bare vil udgive den tilpassede posttype alfabetisk på din arkivskabelon, men ikke i dit WordPress-administrationspanel, kan du opdatere denne kode til:

function acronym_archive_orderby_title($query) {
    // Check if it's the main query, an archive page, and the post type is 'acronym'
    if ($query->is_main_query() && is_post_type_archive('acronym') && !is_admin()) {
        // Order by title alphabetically
        $query->set('orderby', 'title');
        $query->set('order', 'ASC');
    }
}
add_action('pre_get_posts', 'acronym_archive_orderby_title');

Tilpassede indlægstyper kan hjælpe dig med at udvide dit websteds muligheder betydeligt... og det hele kan gøres med en simpel kode inden for dit undertema (eller kernetema) uden behov for plugins. Faktisk anbefaler jeg ikke at bruge plugins, da de ofte tilføjer computing overhead, der kan gøre dit websted langsommere. Jeg arbejder på et kundested lige nu, hvor de gerne vil inkorporere jobåbninger ... og denne kode vil også være nyttig for dem!

Douglas Karr

Douglas Karr er CMO for OpenINSIGHTS og grundlæggeren af Martech Zone. Douglas har hjulpet snesevis af succesfulde MarTech-startups, har hjulpet med due diligence på over $5 mia. i Martech-opkøb og -investeringer og fortsætter med at hjælpe virksomheder med at implementere og automatisere deres salgs- og marketingstrategier. Douglas er en internationalt anerkendt digital transformation og MarTech-ekspert og foredragsholder. Douglas er også udgivet forfatter til en Dummies guide og en bog om virksomhedsledelse.

Relaterede artikler

Tilbage til toppen knap
Luk

Adblock fundet

Martech Zone er i stand til at give dig dette indhold uden omkostninger, fordi vi tjener penge på vores websted gennem annonceindtægter, affilierede links og sponsorater. Vi ville sætte pris på, hvis du ville fjerne din annonceblokering, mens du ser vores websted.