Я использую расширенные настраиваемые поля wordpress plugin и настраиваемый тип сообщений, называемый «альбомы».
В пользовательском типе сообщений у меня есть 2 настраиваемых поля.
Один – это «пользовательское» -тип-поле под названием «album_artists», в котором хранится массив с идентификаторами пользователя в базе данных.
Другой – это поле под названием «release_date», которое хранит временную метку в базе данных и является обязательным.
Теперь, в authors.php, я получаю все «альбомные» -посты, которые содержат текущий идентификатор автора в поле «album_artists». Все идет нормально. Мне это удалось с помощью пользовательского запроса, который ищет \ "{userID} \" в сериализованном массиве поля "album_artists", и я могу получить сообщения, которые я хочу. Но теперь я хочу заказать альбомы-сообщения (которые в настоящее время упорядочены по дате публикации) другим значением поля («release_date») с отметкой времени в нем.
Возможно ли это с помощью одного SQL-запроса или есть ли какая-либо другая идея для достижения этого? Вот мой пользовательский запрос:
global $wpdb; $results = $wpdb->get_results(" SELECT * FROM $wpdb->posts WHERE `ID` IN ( SELECT `post_id` FROM $wpdb->postmeta WHERE `meta_key` LIKE 'album_artists' AND `meta_value` LIKE '%\"{$curauth->ID}\"%' ) AND `post_type` LIKE 'albums' AND `post_status` LIKE 'publish' ORDER BY 'post_date' ASC ", OBJECT);