Пользовательский запрос с query_posts не показывает записи без определенного meta_key

27 сент. 2010 г., 13:59:05
Просмотры: 989
Голосов: 0

Я использую query_posts для сортировки определенных категорий. Мой код выглядит следующим образом:

query_posts('category_name=abs&orderby=meta_value_num&meta_key=field_ordering&order=DESC');

Этот код действительно показывает записи в точном соответствии с указанной сортировкой. Однако, приведенный выше запрос не отображает записи, у которых не установлен meta_key 'field_ordering' в базе данных.

Моя проблема в том, что я не хочу устанавливать это поле для ВСЕХ записей, но при этом хочу видеть эти данные.

Есть какие-либо решения?

0
Все ответы на вопрос 1
0

Ну, вы не можете сортировать по полю, которого нет. Вы можете изменять запрос условно только в тех категориях, где есть это поле, и оставить запрос по умолчанию для остальных.

Это будет выглядеть примерно так:

if( is_category('abs') )
    query_posts(
    array_merge(
    array('orderby' => 'meta_value', 
                  'meta_key' => 'field_order', 
                  'order' => 'Desc' ),
    $wp_query->query
        )
    );
27 сент. 2010 г. 14:44:10