pre_get_posts показывает сообщения в случайном порядке

Я использую следующий фильтр, чтобы увеличить количество сообщений, отображаемых в шаблонах категорий от 10 до 30 (я хочу сохранить 10 для остальной части сайта)

// Modify number of results shown function modify_query_amount_shown($query){ if ($query->is_category) { $query->set('posts_per_page', 30); $query->set('orderby', 'menu_order'); } return $query; } add_filter('pre_get_posts', 'modify_query_amount_shown'); 

Однако, когда я обновляю свою страницу несколько раз, я замечаю, что порядок моих сообщений меняется каждый раз. Я могу подтвердить, что он имеет какое-то отношение к этому коду, потому что, как только я его прокомментирую, он возвращается к нормальному состоянию.

Solutions Collecting From Web of "pre_get_posts показывает сообщения в случайном порядке"

pre_get_posts не является фильтром, это действие. Также вы не должны устанавливать menu_order в menu_order для сообщений, поскольку они не являются иерархическими. Установите вместо этого orderby на date .

 function modify_query_amount_shown( $query ) { if ( $query->is_category ) { $query->set( 'posts_per_page', 30 ); $query->set( 'orderby', 'date' ); } } add_action( 'pre_get_posts', 'modify_query_amount_shown' ); 

Теперь порядок отображаемых сообщений будет согласован, независимо от количества обновлений.