Intereting Posts
Строки запроса и Woocommerce Максимальная длина meta_value Проблема с постоянными ссылками для пользовательского типа сообщения Показать случайные категории как иметь __ () перевод на языках, отличных от администратора? Страницы редактора WordPress, не изменяющие статус ввода Включить липкие сообщения в пользовательский post_type отображение пользовательского поля из внутреннего блога на главной странице wordpress multisite Отображение произвольного HTML или содержимого на боковой панели Как добавить пользовательские файлы css / js в шаблон в wordpress Указывая, две или более заархивированные записи в блогах на одну и ту же постоянную ссылку (отдельная страница) get_previous_post работает не так, как ожидалось Изменение имени базы данных дублировать записи в базе данных при использовании save_post или wp_insert_post Конкретные дни, конкретное изображение на главной странице

mySQL-запрос. ORDER BY meta_key

Я довольно долго борюсь с этим и начинаю думать, что мне не хватает чего-то большого. В сообщениях CPT могут быть метаданные или метаданные ( _vip_post [0|1] , _thumbnail_id [null|numeric] ).

Если я запрашиваю _thumbnail_id это нормально и работает:

 SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts LEFT JOIN wp_postmeta m ON ( wp_posts.ID = m.post_id AND m.meta_key = '_thumbnail_id') ORDER BY m.meta_key DESC, wp_posts.post_date DESC 

Сначала возвращает сообщения с эскизами, _thumbnail_id = null. Достаточно хорошо. За работой.

Но если я запрашиваю мой новый _vip_post meta_key, он полностью игнорируется при заказе. Та же картина.

 SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts LEFT JOIN wp_postmeta m ON ( wp_posts.ID = m.post_id AND m.meta_key = '_vip_post') ORDER BY m.meta_key DESC, wp_posts.post_date DESC 

Просто заказано post_date . Не работает.

Solutions Collecting From Web of "mySQL-запрос. ORDER BY meta_key"

Zlatev

meta_key – это имя настраиваемого типа сообщений и является VARCHAR (255)
meta_value – значение ключа и является длинным текстом

По вашему запросу вы не заказываете значения, а по имени поля. Запрос работает для _thumbnail_id, потому что вы используете LEFT JOIN, а CPT может быть нулевым.

Вы можете увидеть, запускаете ли вы этот запрос

 SELECT SQL_CALC_FOUND_ROWS wp_posts.* ,m.* FROM wp_posts LEFT JOIN wp_postmeta m ON ( wp_posts.ID = m.post_id AND m.meta_key = '_thumbnail_id') ORDER BY m.meta_key ASC, wp_posts.post_date DESC 

См. Нуль для meta_key

Во втором случае всегда присутствует CPT _vip_post, поэтому порядок в имени поля не работает. Вы должны заказать его с помощью meta_value.

Попробуйте что-нибудь вроде:

 SELECT SQL_CALC_FOUND_ROWS wp_posts.* ,m.* FROM wp_posts LEFT JOIN wp_postmeta m ON ( wp_posts.ID = m.post_id AND m.meta_key = '_vip_post') ORDER BY m.meta_value ASC, wp_posts.post_date DESC 

Вы можете изменить порядок, используя * m.meta_value DESC *.