Intereting Posts
сделать разбивку на страницы, показывающие записи по дате WP-e-Commerce Добавление продукта через кнопку Flash Я хочу фильтровать свои продукты с помощью атрибутов Есть ли способ перезаписать фильтр, используемый в canonical.php? Функция для получения имени в таблице базы данных из строки, разделенной запятыми ранжирование контента с переполнением стека для wordpress? Weird 404 URL Problem – имя домена, помещаемое в конце URL-адресов Удалите слитки старого и неиспользуемого пользовательского типа сообщения Вкладка «Тема-Конфиг» в панели администрирования? Какая связь между cURL, WordPress и cacert.pem? зарегистрировать таксономию переписать 404 Объединение значений ключа Meta_Query для одного массива Получите только непосредственных детей (а не внуков) иерархического пользовательского таксономического термина «The_excerpt» в цикле просто продолжает повторять первый пост? Некоторые из моих пользовательских таксономий не отображаются, но все еще учитываются при создании WPMU

Сортировка сообщений по дате (DESC) и по заголовку (ASC)

В настоящее время должности моего сайта упорядочены по алфавиту по названию:

/* Order Posts Alphabetically */ function prefix_modify_query_order( $query ) { if ( is_main_query() ) { $query->set( 'orderby', 'title' ); $query->set( 'order', 'ASC' ); } } add_action( 'pre_get_posts', 'prefix_modify_query_order' ); 

Теперь я хочу сортировать сообщения по алфавиту по названию (по возрастанию), но также по дате (по убыванию).

Как этот пример:

  • AUDI A1 Ambition 1.4 (опубликовано 01/01/17)
  • AUDI A1 Ambition 1.4 (опубликовано 01/01/16)
  • AUDI A1 Ambition 1.4 (опубликовано 01/01/15)
  • BMW 120i Active Flex 2.0 (опубликовано 01/01/17)
  • BMW 120i Active Flex 2.0 (опубликовано 01/01/16)
  • BMW 120i Active Flex 2.0 (опубликовано 01/01/15)
  • Citroen …

Изменение параметра $query->set( 'orderby', 'date title' ); на $query->set( 'orderby', 'date title' ); не разрешает мою проблему, потому что сначала мне нужно показывать последние сообщения.

Буду признателен за любые другие идеи.

Вы можете передать массив в query как показано в следующем примере, описанном в Codex :

 $args = array( 'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' ) ); $query = new WP_Query( $args ); 

В вашем случае будет что-то вроде этого:

 /* Order Posts Alphabetically */ function prefix_modify_query_order( $query ) { if ( is_main_query() ) { $args = array( 'post_date' => 'DESC', 'title' => 'ASC' ); $query->set( 'orderby', $args ); } } add_action( 'pre_get_posts', 'prefix_modify_query_order' ); 

Если вы хотите, чтобы post_date был основным фильтром, вам нужно изменить свою позицию в массиве, теперь код будет запрашивать все сообщения в алфавитном порядке, начиная с самого нового post_date.