Сортировка статей по количеству комментариев в WordPress
Доводим до ума WP_Query::get_posts()
Начну с кода: return get_posts( array( "numberposts" => 10, "orderby" => "comment_count", "post_status" => "publish", "order" => "DESC", ) ); Не работает! В смысле работает, но не так, как того хочется: возвращаемые данные не сортируются по количеству комментариев (сортировка производится по дате публикации). Сразу возникает вопрос: почему? Ведь поле comment_count присутствует в таблице wp_posts. Как [...]
← Вернуться к полной версии записи «Сортировка статей по количеству комментариев в WordPress»…
Автор: Vladimir; опубликовано в: Патчи;Сен
2008
Комментарии к статье «Сортировка статей по количеству комментариев в WordPress» (6) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Сортировка статей по количеству комментариев в WordPress»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Можно отписать разработчикам.
Недостатки: при обновлении WordPress патч придётся накладывать ещё раз (если разработчики это не исправят).
До сих пор не исправили.
ща проверю, заранее спасибо за коды!
Патч для 2.7RC1 (тестировал на nightly build):
+++ query.php 2008-12-04 14:04:04.000000000 +0200
@@ -2023,7 +2023,7 @@
$q['orderby'] = "$wpdb->posts.post_date ".$q['order'];
} else {
// Used to filter values
- $allowed_keys = array('author', 'date', 'category', 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand');
+ $allowed_keys = array('author', 'date', 'category', 'title', 'modified', 'menu_order', 'parent', 'ID', 'comment_count', 'rand');
if ( !empty($q['meta_key']) ) {
$allowed_keys[] = $q['meta_key'];
$allowed_keys[] = 'meta_value';
@@ -2050,6 +2050,9 @@
case 'meta_value':
$orderby = "$wpdb->postmeta.meta_value";
break;
+ case 'comment_count':
+ $orderby = "$wpdb->posts.comment_count";
+ break;
default:
$orderby = "$wpdb->posts.post_" . $orderby;
}
Немного не вкурил, а нафига весь этот геморрой? Ты, что хочешь, чтобы у тебя вверху постоянно статьи с большим количеством комментов висели? Нафига?
Хреновая трава… Например, для получения списка самых обсуждаемых статей в виджете.