Как вы используете orderby с meta_query в Wordpress 3.1?
2 ответ
- голосов
-
- 2011-03-02
новый массив
meta_query
выбирает,какие сообщения возвращает запрос.Итак,да,вы указываете «ключ» в этомmeta_query
,но вы все равно можете использовать старый метод'orderby' => 'meta_value', 'meta_key' => '_events_meta',
в дополнение к мета_запросу,поскольку эти строки указывают,как отсортировать результирующий запрос.Так что да,вы можете указать один и тот жеmeta_key дважды.
the new
meta_query
array selects which posts the query returns. So yes, you are indicating the 'key' within thatmeta_query
, but you can still use the old method of'orderby' => 'meta_value', 'meta_key' => '_events_meta',
in addition to the meta_query, as these lines indicate how to sort the resulting query. So yes, you might indicate the same meta_key twice.
-
Это не совсем правильный ответ.Если вы добавите orderby иmeta_key вне существующегоmeta_query,результат действительно будет отсортирован по предоставленному ключу,но он также будет включать любую публикацию,в которой установлен этот мета-ключ,даже если значение не соответствует критериямвmeta_query (по крайней мере,так у меня работало при тестировании).Лучшим способом сделать это может быть передача массива в качестве параметра orderby,как описано здесь: http://core.trac.wordpress.org/ticket/17065#comment:14This answer is not completely right. If you add an orderby and a meta_key outside of an existing meta_query, the result will indeed sort by the provided key--but it will also then include any post where that meta key is set, even if the value doesn't meet the criteria in the meta_query (at least, that's how it worked for me in testing). A better way to do this might be to pass an array as the orderby param, as described here: http://core.trac.wordpress.org/ticket/17065#comment:14
- 9
- 2012-04-03
- MathSmath
-
- 2011-03-02
Я использую следующий код для своих пользовательских сообщений,называемых
events
,чтобы получить все сообщения в цикле.$evtLoop = new WP_Query(array('post_type' => 'events', 'posts_per_page' => 10, 'orderby' => 'meta_value', 'meta_key' => '_events_meta', 'order'=>'DESC'));
Я думаю,что вы используете свой код примерно так же.Я думаю,вам не хватает
meta_key
с именем метаполя для сортировки.Возможно,поможет,если вы добавите'meta_key' => 'webinar_startDate',
во внешний массив?
I'm using the following code for my custom posts called
events
, to get all posts in a Loop.$evtLoop = new WP_Query(array('post_type' => 'events', 'posts_per_page' => 10, 'orderby' => 'meta_value', 'meta_key' => '_events_meta', 'order'=>'DESC'));
I think you are using your code approximatly the same way. I think you are missing the
meta_key
with the name of the meta-field to sort. Perhaps it helps if you add'meta_key' => 'webinar_startDate',
to the outer array?
-
Я вижу сейчас.Меня смутила документация Wordpress,в которой говорилось,чтоmeta_key иmeta_value обесценились.Я предположил,что это означает,что я не могу их использовать,но я полагаю,что это вводило в заблуждение.Благодаря!I see now. I was confused by the Wordpress documentation that said 'meta_key' and 'meta_value' were depreciated. I assumed that meant I couldn't use them, but I guess that was misleading. Thanks!
- 0
- 2011-03-02
- Jeff K.
Можно ли упорядочить список настраиваемых сообщений после фильтрации с помощьюmeta_query по выбранным мной метаданным?
Например,у меня есть собственный тип публикации,который называется вебинарами. Я пытаюсь составить список всех предстоящих вебинаров и упорядочить их по настраиваемому мета-полю webinar_startDate.
Используя следующий запрос,я смог вернуть вебинары,успешно исключив старые вебинары. Однако они по-прежнему выходят в том порядке,в котором были опубликованы,а не до webinar_startDate.
Я подозреваю,что из-за перехода с 3.0 на 3.1 использование orderby=>meta_value,вероятно,отличается,но я не могу найти ответ в документации WordPress,чтобы объяснить это.
Кто-нибудь может помочь? Заранее спасибо.