Как изменить сортировку записей в WordPress?

Мы отсортируем записи в WordPress в публичной части для определенной таксономии. На базе этого примера вы сможете легко построить свою собственную логику сортировки.


Ниже приведен код, который нужно вставить в

functions.php

вашей темы:

function change_order_post_list( $query ){

  if( !is_admin() && $query->is_main_query() && $query->query['taxonomy'] == 'status' ) {

    $query->set('meta_key'  , 'date_actual');
    $query->set('orderby'   , 'meta_value');
    $query->set('order'     , 'DESC');

  }
}
add_action('pre_get_posts', 'change_order_post_list', 1 );

Немного подробностей.

Функция будет срабатывать перед тем, как движок полезет в базу данных за записями. Нам остается просто переопределить значения по-умолчанию.

В условии мы проверяем:

  • Находимся ли мы в административном разделе (в

    /wp-admin

    );
  • Запрос является «главным». Например, если мы получаем записи через

    get_posts()

    в шаблоне — это не главный запрос. Главным будет страница, на которой мы это делаем;
  • Запрос вытаскивает посты из нашей собственной таксономии

    status

    ;

Если все условия сработали, мы сортируем по значению произвольного поля

date_actual

в порядке убывания.

Если принцип работы понятен, то вы сможете легко добавить свою логику в этот пример.


admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

1 неделя ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

1 неделя ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

1 неделя ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

1 неделя ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

1 неделя ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

1 неделя ago