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.