Сравните 3 настраиваемых поля и отсортируйте по старому

Я создаю киноархив. Для каждого фильма я заполняю даты выхода для 3 стран, они сохраняются как настраиваемые поля (добавляются через Pods)

Теперь, когда я перечисляю фильмы, я хотел бы создать массив и прокрутить каждое сообщение, чтобы проверить, имеют ли поля значения, затем сравнить значения и отсортировать по первой дате (самой старой или самой последней дате). Если ни одно из полей не имеет значений, для сортировки следует использовать дату публикации. Я использую этот код для чего-то подобного

        function orderby_additionaldate($query) {
if (! is_admin() && $query->is_main_query() && is_category( array( 2,57,530 ) ) || cat_is_ancestor_of(2, get_query_var('cat') ) && $query->is_main_query() && ! is_admin() || cat_is_ancestor_of(57, get_query_var('cat') ) && $query->is_main_query() && ! is_admin() || cat_is_ancestor_of(530, get_query_var('cat') ) && $query->is_main_query() && ! is_admin() ) {
    if ( $query->query_vars ) {
        $query->set( 'order', 'DESC' );
        $query->set( 'meta_key', 'additional_date' );
        $query->set( 'orderby', 'meta_value' );
    }
}
}
add_action( 'pre_get_posts', 'orderby_additionaldate' );

Здесь не хватает двух вещей:

  1. Он не сравнивает 3 значения мета-ключа (release_f, release_uk и release_us).
  2. Он не проверяет, является ли один из них пустым, и вместо этого использует опубликованную дату (он просто устанавливает значение пустых на 1 января 1970 года).

person Mia    schedule 07.02.2014    source источник


Ответы (1)


Проверьте, есть ли значение, которое сначала ставит $mykey_values ​​в условие http://codex.wordpress.org/Function_Reference/get_post_custom_values

$mykey_values = get_post_custom_values('additional_date');
person topdown    schedule 08.02.2014