Написал плагин лайк баттонов для постов. Просто при клике на кнопку изменяется значения мета кей и изменяется значения в базе данных в отдельной таблице. Теперь вопрос как написать цикл вывода постов сортированный по лайкам. То есть самый залайканые с верху?
Те идею которые у меня в голове.
1 Перебрать циклов все посты и создать для них мета кей равным -9999 по умолчанию а потом написать цикл вывода постов с правилом если лайк равно -9999 то вообще не показывать это число. Как бы симулирование. Но я не нашел в вп как можно зарегистрировать банально для сразу всех постов мета кей, только SQL инсерты.
2 Написал я два цикла. Первый выводит все посты с мета кеем (у которых есть данный мет кей) и сортированные по мета кей. Вторым циклов вывести все посты у которых нету данного мета кея. Получиться то что нужно кроме того, что данные два цикла никак нельзя разделить на страницы с навигацией в низу.
$args = array(
'post_status' => 'publish',
'post_type' => 'post',
'meta_key' => 'vote-count',
'orderby' => 'meta_value_num'
);
show_posts($args);
$args = array(
'post_status' => 'publish',
'post_type' => 'post',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'vote-count',
'compare' => 'NOT EXISTS'
)
)
);
show_posts($args);
function show_posts($args) {
$query = new WP_Query($args);
if ( $query->have_posts() ) {
echo '<ul >';
while ( $query->have_posts() ) {
$query->the_post();
echo '<li style="margin-top: 10px;">' .'<span style="color:red;">' . get_post_meta( get_the_ID(),'vote-count',true) . ' </span> '. get_the_title(). '</li>';
}
echo '</ul>';
}
wp_reset_query();
}
// 'relation' => 'OR', - Для него не работает сортировка.