比较3个自定义字段并按最旧排序

时间:2014-02-07 20:20:20

标签: wordpress compare sql-order-by meta-key

我正在制作电影档案。对于每部电影,我填写3个国家/地区的发布日期,它们存储为自定义字段(通过Pod添加)

现在,在列出电影时,我想构建一个数组并遍历每个帖子以检查字段是否有值,然后比较值并按第一个日期(最早或最近的日期)排序。如果没有字段具有值,则应使用发布日期进行排序。我正在使用此代码进行类似的

        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_frelease_ukrelease_us)。
  2. 它不会检查其中一个是否为空并使用发布日期(它只是将空值的值设置为1970年1月1日)。

1 个答案:

答案 0 :(得分:0)

检查是否存在将$ mykey_values置于条件中的值 http://codex.wordpress.org/Function_Reference/get_post_custom_values

$mykey_values = get_post_custom_values('additional_date');