Meine benutzerdefinierte Startseite ist so eingestellt, dass meine benutzerdefinierten Beiträge über das benutzerdefinierte Datumsfeld mit diesem (in den benutzerdefinierten Namen aktualisierten) Code in functions.php sortiert werden:
// sort order for home page
add_action('wp', 'wwgo_check_page');
function wwgo_check_page () {
if (is_page()) {
add_filter('get_previous_post_sort', 'sort_it');
add_filter('get_next_post_sort', 'sort_it');
add_filter('posts_orderby', 'sort_it' );
add_filter('posts_join', 'join_it' );
add_filter('posts_where', 'where_it' );
function sort_it () {
global $wpdb;
return " $wpdb->postmeta.meta_value ASC ";
}
function join_it( $join ) {
global $wpdb;
$join .= " LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id) ";
return $join;
}
function where_it( $where ) {
global $wpdb;
$where .= "AND $wpdb->postmeta.meta_key = 'deadline' ";
return $where;
}
}
}
Welches ist dandy und einfach. Jetzt. Ich möchte, dass dies auf der gesamten Website funktioniert. Ich möchte, dass Beiträge auf Archivseiten, Kategorien usw. zuerst nach dem benutzerdefinierten Datumsfeld sortiert werden.
Irgendwelche Ideen?
Ich habe versucht, das ' if
' in zu ändern , is_archive()
aber das hatte keine Auswirkung. Ich habe es auch versucht <! is_single()>
.
Ich bin sicher, es sollte etwas Einfaches sein. Aber ich bin neu in PHP und daher ahnungslos.
Hier ist die Seite , auf der Sie sehen können, dass die Startseite gut sortiert ist. Wenn Sie jedoch auf "Poesie" klicken (die einzige mit wenigen Beiträgen), funktioniert die Sortierung nicht.
Vorschläge werden mit großer Freude aufgenommen.
Dankesehr.
josh_
um die Benennung von Kolisionen zu vermeiden.