Intereting Posts
обновить категорию должности в новой таблице по частой смене категории Что лучше: пользовательские поля и пользовательские таксономии с условиями для производительности, масштабируемости и лучшего пользовательского интерфейса Как я могу исключить динамический URL-адрес, чтобы показать всплывающее окно, созданное с помощью плагина WordPress Popup? Измените главный архив, чтобы показывать сообщения с мета как последними уведомление администратора на всплывающем экране «Вставка мультимедиа» Не удается сохранить сообщение WordPress с надписью «/ etc /» Миграция сайта WordPress нарушила кодировку UTF8 Установка 'post_format' wp_verify_nonce продолжает сбой Безопасность для данных, полученных из базы данных Использование родительских страниц для структуры URL без целевой страницы Как добавить ссылки в файл .po (language) в wordpress? Запросить все сообщения, у которых нет назначенных им тегов Друзья пользователя Как использовать новый JSON API WordPress 4.4?

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 *.