Die Reihenfolge deiner Beiträge auf der Archiv-Seite ändern

Manchmal möchtest du einfach nur die Reihenfolge deiner Beiträge auf der Archiv-Seite ändern. Dazu musst du kein komplett neues Template oder neue WP_Query-Requests schreiben. Stattdessen erweiterst du den Standard-WP_Query um eigene Parameter. In diesem Fall fügst du die Parameter meta_key und orderby hinzu.

Als erstes legst du für deine Beiträge ein benutzerdefiniertes Feld mit dem Namen your_meta_key an. Anschließend manipulierst du WP_Query, damit deine Beiträge auf der Archiv-Seite danach sortiert werden.

function wp_bibel_de_alter_query($query) {
	global $wp_query;
	
	if ( !is_post_type_archive( 'your_post_type' ) )
		return;
	
	if ( is_admin() )
		return;
	
	if ( !$query->is_main_query() )
		return;
	
	$query->set( 'meta_key', 'your_meta_key' );
	$query->set( 'orderby', 'meta_value' );
	
	remove_all_actions ( '__after_loop' );
}

add_action( 'pre_get_posts', 'wp_bibel_de_alter_query' );

Solltest du deine Beiträge nach einem numerischen Wert sortieren wollen, kannst du das folgende Snippet verwenden:


function wp_bibel_de_alter_query($query) {
	global $wp_query;
	
	if ( !is_post_type_archive( 'your_post_type' ) )
		return;
	
	if ( is_admin() )
		return;
	
	if ( !$query->is_main_query() )
		return;
	
	$query->set( 'meta_key', 'your_meta_key' );
	$query->set( 'orderby', 'meta_value_num' );
	
	remove_all_actions ( '__after_loop' );
}

add_action( 'pre_get_posts', 'wp_bibel_de_alter_query' );

Anschließend musst nur noch your_post_type durch deinen Post Type ersetzen und die gewünschten Parameter setzen. Weitere Manipulationsmöglichkeiten findest du im WordPress Codex.

Vielen Dank für den Gastbeitrag.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.