Здравствуйте! Где и как WP составляет массив всех постов(где находится запрос к бд)? Есть такой код для вывода всех постов:
<?php while (have_posts()) : the_post(); ?>
<?php appthemes_before_post(); ?>
<?php get_template_part('content', APP_POST_TYPE); ?>
<?php appthemes_after_post(); ?>
<?php endwhile; ?>
<?php appthemes_after_endwhile(); ?>
<?php else: ?>
<?php appthemes_loop_else(); ?>
<?php endif; ?>
Мне необходимо переделать запрос к бд, чтобы поменять порядок вывода постов
Используйте хук pre_get_posts. Вот пример с сортировкой по пользовательскому полю и дате:
add_action( 'pre_get_posts', 'custom_order' );
function custom_order( $query )
{
if ( ! is_admin() && $query->is_main_query() ) {
$query->set('meta_key', 'my-custom-field' );
$query->set('orderby', array('meta_value' => 'ASC', 'date' => 'DESC'));
}
return $query;
}
Разумеется, вы можете указать свой способ сортировки. Код необходимо вставить в файл functions.php вашей темы.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей