WordPress порядок вывода постов

258
24 ноября 2017, 08:21

Здравствуйте! Где и как 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; ?>

Мне необходимо переделать запрос к бд, чтобы поменять порядок вывода постов

Answer 1

Используйте хук 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 вашей темы.

READ ALSO
Белый экран при авторизации, как выявить причину?

Белый экран при авторизации, как выявить причину?

При авторизации белый экран, как выявить причину сего? В таблице лежит лишь 1 пароль

225
Как печатать картинку в csv через php?

Как печатать картинку в csv через php?

Здравствуйте, сделал скрипт который печатает в php и делает в csv форматТак вот задаюсь вопросом, как реализовать загрузку изображений в csv через...

290
Определение местоположения ipgeo

Определение местоположения ipgeo

Сайт nlspru определяется местоположение

270
Вызываемая function fetch() не объект

Вызываемая function fetch() не объект

var_dump($result); возвращает object(PDOStatement)#4 (1) { ["queryString"]=> string(0) "" }

286