Isso é mais fácil do que pensei, nunca tinha pensado nisso, mas fiz alguns testes e descobri.
Adicione ao seu functions.php a seguinte função
function orderby_search_filter($query){
if ( $query->is_search ) {
$query->set( 'orderby', 'menu_order' );
}
return $query;
}
add_filter( 'pre_get_posts', 'orderby_search_filter' );
Agora só resta vc definir em suas páginas o parâmetro “ordem” localizado no metabox “atributos de Páginas” com um valor numérico.
Se quiser controlar quais páginas vem antes de outras defina os valores em ordem crescente ou decrescente.
Se definir o mesmo valor para todas (se não me engano) elas irão aparecer no topo da página, mas ainda mantendo a ordem de datas em que elas apareciam anteriormente.
se vc já possui uma função ou plugin usando o filtro pre_get_posts aumente a prioridade desta função em relação a outras, adicionando um número maior que o padrão, ou que a sua função já está utilizando assim
add_filter( 'pre_get_posts', 'orderby_search_filter', 20 );
Uso constantemente este filtro e ele ainda continua a me surpreender, essa eu não sabia e mais uma vez aprendo tentando ajudar.
Obrigado por mais este conhecimento.
Mais fácil do que eu pensei também, ahaah
Muito obrigado, amigo! Sempre atento ao fórum e disposto a ajudar. Obrigado por ajudar a fortalecer a comunidade WP no Brasil
Um abraço!