Intereting Posts
Лучшее место для хранения файлов, вызываемых заданиями cron? Пользовательские типы сообщений – используйте post_id в структуре permalink при использовании has_archive => true Как обновить записи с помощью $ wpdb? PHP get_category () функция redeclared Как добавить несколько таксономий в URL? страниц списка wp с использованием значения мета-поля Как найти языковое направление? Пагинация внутри страницы редактирования Меню, созданное в режиме редактирования темы, не имеет активных состояний, установленных на дочерних страницах Как я могу сделать существующие пользовательские поля более легкими для редактирования / добавления в моей теме? Как запрашивать пользовательские типы сообщений со смешанными операциями AND и OR для настраиваемых полей Как изменить меню навигации на странице «Моя учетная запись» в WooCommerce Можно ли использовать несколько пробелов в заголовке? Почему тип сообщения на странице результатов поиска случайный? как можно показать с поста пользовательского типа сообщения таксономия / условия?

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