Аа, вы знаете, что в WP3.0 есть опции для пользовательских расширенных запросов, и это здорово. По этой причине некоторые параметры запроса пользовательских полей, таких как meta_key, meta_value, были объявлены устаревшими для нового параметра meta_query ( см. Здесь )
Я пытаюсь получить довольно простой запрос с новым синтаксисом, запросить сообщения по определенному post_type (services), который содержит указанный meta_key (order_in_archive) - это идет хорошо, как и ожидалось. Но я хочу упорядочить запрос по значению meta_value, но безуспешно.
Это мой запрос -
query_posts(
array( 'post_type' => 'services',
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_query' => array(
array('key' => 'order_in_archive'))
)
);
Я пробовал orderby также с помощью meta_value_numeric и meta_value, но в любом случае результаты упорядочиваются по дате публикации (как это делают обычные записи). Кто-нибудь знает, как это можно сделать?
Благодарность
источник
Кодекс WP на самом деле сбивает с толку при решении этой проблемы.
Вам на самом деле не нужен параметр meta_query для использования orderby, вместо этого он использует параметр meta_key, который, хотя WP Codex устарел, был установлен здесь: как вы используете orderby с meta_query в Wordpress 3.1? этот приказчик все еще нуждается в meta_key.
так и должно быть
источник
Это просто:
Вот мой код:
Основная деталь: включите
meta_key
, мой код не заказывал, еслиmeta_key
не включен, и это все:Вот полный код списка
directors
фотографий, упорядоченных поdirector_weight
:источник
Не используйте query_posts.
Используйте параметры WP_Meta_Query
источник
Я нашел, что это работает довольно хорошо.
источник
meta_query
параметра и получитьorderby
к работе с ней, а не о старых , но все еще функциональныхmeta_key
/meta_value
параметров. Кроме того, давайте не будем поощрять использованиеquery_posts
.У меня был набор пользовательских дат событий, которые мне нужно было отсортировать по дате по убыванию. Так как моя пользовательская дата события хранилась в моей таблице wp_postmeta и обычно отличалась от даты post_date или модифицированной даты, это сработало для меня:
Затем вы можете перебирать $ posts следующим образом:
источник
Это работа для меня,
Нужно только предоставить ключ для order_clause
источник