Мне нужно получить упорядоченный список по трем полям.
$sql = "
SELECT
SQL_CALC_FOUND_ROWS $wpdb->posts.ID
FROM
$wpdb->posts
INNER JOIN
$wpdb->postmeta ON ( $wpdb->posts.ID = $wpdb->postmeta.post_id )
INNER JOIN
$wpdb->postmeta AS mt1 ON ( $wpdb->posts.ID = mt1.post_id )
WHERE
1=1
AND
(
( mt1.meta_key = 'pub_series' AND mt1.meta_value = 'Book' )
OR ( mt1.meta_key = 'pub_series' AND mt1.meta_value = 'Book chapter' )
OR ( mt1.meta_key = 'pub_series' AND mt1.meta_value = 'Journal Article' )
)
/*AND
(
mt3.meta_key = 'forthcoming'
)*/
AND
$wpdb->postmeta.meta_key = 'pub_year'
AND
$wpdb->posts.post_type = 'publication'
AND
$wpdb->posts.post_status = 'publish'
GROUP BY
$wpdb->posts.ID
ORDER BY
/*FIELD(mt3.meta_key, 'forthcoming') DESC,
FIELD(mt3.meta_value, 'null') DESC,*/
//FIELD($wpdb->postmeta.meta_value,1),
$wpdb->postmeta.meta_value DESC,
$wpdb->posts.post_date DESC
";
$total = count($wpdb->get_results($sql));
$offset = ( $paged * $posts_per_page ) - $posts_per_page;
$results = $wpdb->get_results( $sql . "
LIMIT
$offset, $posts_per_page" );
Это упорядоченный список запросов по двум полям: [custom_field] pub_year (возможные значения 2018, 2017 ...) и [delautl wp postполе даты] post_date.Это нормально.
Но теперь мне нужно показать элементы с [custom_field ]wardcoming = 1. Проблема в том, что в этом поле три состояния: - элементы с предстоящим = 1 - элементы с предстоящим = 0 - и элементы гденастраиваемое поле с именем предстоящего не существует
Мне нужно получить упорядоченный список с элементами первого поступления = 1, а остальные должны быть упорядочены по pub_year и дате.Как я могу это сделать.Скажите мне, если вам нужно больше информации.Большое спасибо.