1

我正在建立一个电影档案。对于每部电影,我都填写了 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_frelease_ukrelease_us)。
  2. 它不检查其中一个是否为空,而是使用发布的日期(它只是将空的值设置为 1970 年 1 月 1 日)。
4

1 回答 1

0

检查是否有一个值首先将 $mykey_values 置于条件 http://codex.wordpress.org/Function_Reference/get_post_custom_values

$mykey_values = get_post_custom_values('additional_date');
于 2014-02-08T19:49:55.680 回答