И так обновление. Самый официальный ответ, который используют другие плагины таков:
add_action( 'pre_get_posts', 'wpse_71899_start_filter' );
function wpse_71899_start_filter() {
if ( ! is_front_page() )
return; // stop here.
add_filter('posts_orderby', 'edit_posts_orderby');
add_filter('posts_join_paged','edit_posts_join_paged');
}
function edit_posts_join_paged($join_paged_statement) {
global $wpdb;
$join_paged_statement = "LEFT JOIN ".$wpdb->prefix."post_vote_counts ON ".$wpdb->prefix."post_vote_counts.post_id = $wpdb->posts.ID";
return $join_paged_statement;
}
function edit_posts_orderby($orderby_statement) {
global $wpdb;
$orderby_statement = "(".$wpdb->prefix."post_vote_counts.upvote_count) DESC";
return $orderby_statement;
}
НО, данный код работает только для домашней страницы, и это нельзя никак поменять, если мы убираем правило у нас исчезают посты в категориях, то есть вообще категории ничего не будут отображать циклом. Я даже не знаю как это можно использовать. У ВП тут дыра. По идее нужно указывать в цикле какую-то переменную которая будет переключать и использовать данный вид вывода постов.