Сортировка статей по количеству комментариев в WordPress

Доводим до ума WP_Query::get_posts()

Начну с кода: return get_posts( array( "numberposts" => 10, "orderby" => "comment_count", "post_status" => "publish", "order" => "DESC", ) ); Не работает! В смысле работает, но не так, как того хочется: возвращаемые данные не сортируются по количеству комментариев (сортировка производится по дате публикации). Сразу возникает вопрос: почему? Ведь поле comment_count присутствует в таблице wp_posts. Как [...]

← Вернуться к полной версии записи «Сортировка статей по количеству комментариев в WordPress»…

Автор: ; опубликовано в: Патчи;
20
Сен
2008

RSS Комментарии к статье «Сортировка статей по количеству комментариев в WordPress» (6)  »

  1. Можно отписать разработчикам.

  2. grang

    Недостатки: при обновлении WordPress патч придётся накладывать ещё раз (если разработчики это не исправят).

    До сих пор не исправили.

  3. Евгения

    ща проверю, заранее спасибо за коды!

  4. Патч для 2.7RC1 (тестировал на nightly build):

    [-]
    Download query.php.diff
    --- query.php.orig      2008-11-24 08:14:40.000000000 +0200
    +++ 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;
                                    }
  5. Немного не вкурил, а нафига весь этот геморрой? Ты, что хочешь, чтобы у тебя вверху постоянно статьи с большим количеством комментов висели? Нафига?

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Сортировка статей по количеству комментариев в WordPress»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा