pre_get_posts mostra postagens em ordem aleatória às vezes

Estou usando o seguinte filtro para aumentar a quantidade de postagens mostradas nos modelos de categoria de 10 a 30 (eu quero manter 10 para o resto do site)

// 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'); 

No entanto, quando eu atualizar minha página várias vezes, percebo que a ordem das minhas mensagens muda de cada vez. Posso confirmar que tem algo a ver com este código, porque assim que eu comentar, ele retorna ao normal.

Solutions Collecting From Web of "pre_get_posts mostra postagens em ordem aleatória às vezes"

pre_get_posts não é um gancho de filtro, é uma ação. Além disso, você não deve configurar orderby para menu_order para posts, pois não são hierárquicos. Defina o orderby até à date vez disso.

 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' ); 

Agora, a ordem das postagens exibidas será consistente, independentemente do número de atualizações.