Моя настраиваемая страница «Домашняя страница» настроена на сортировку моих настраиваемых сообщений с помощью настраиваемого поля даты с этим (обновленным, чтобы иметь произвольное имя) кодом в functions.php:
// 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;
}
}
}
Который денди и простой. Сейчас же. Я хочу, чтобы это работало на всем сайте. Я хочу, чтобы записи на страницах архива, категории и т. Д. Сортировались первыми по настраиваемому полю даты.
Любые идеи?
Я пытался изменить ' if
' на, is_archive()
но это не имело никакого эффекта. Я <! is_single()>
тоже пытался .
Я уверен, что это должно быть что-то простое. Но я новичок в php и, следовательно, невежественен.
Вот сайт , где вы можете видеть, что домашняя страница хорошо отсортирована, но если вы нажмете «поэзия» (единственная с несколькими постами), сортировка не будет работать.
Любые предложения будут встречены с большой радостью.
Спасибо, пожалуйста.
josh_
чтобы избежать именования коллизий.