WordPress元查询和按自定义字段排序

时间:2014-03-27 作者:MikO

我有一个自定义的帖子类型,名为“Films,带有名为Showings,其中有一个字段start_datetime“”类型为DateTime。。。

我想执行一个查询,以获取在未来7天内放映的所有电影,并想通过放映的start\\u datetime订购它们。

我有这个问题:

$query = new \\WP_Query( array(
    \'numberposts\'   => -1,
    \'post_type\'     => \'film\',
    \'meta_key\'      => \'showings_%_start_datetime\',
    \'orderby\'       => \'meta_value_num\',
    \'order\'         => \'ASC\',

    \'meta_query\'    => array(
        array(
            \'key\'       => \'showings_%_start_datetime\',
            \'value\'     => array( time(), strtotime( \'+7 days\' ) ),
            \'type\'      => \'NUMERIC\',
            \'compare\'   => \'BETWEEN\'
        )
    )
));
这将正确捕获在未来7天内放映的所有电影,但它会在FIRST 显示,我需要它在FIRST FUTURE 正在显示。。。有什么帮助吗?

例如:电影A今天上映
电影B明天上映,一年前又上映了一场。

我的结果将按顺序排列:先是B片,然后是A片(因为实际上B片是以A片开始放映的)。但我需要从另一个角度订购,因为电影A是未来第一部上映的电影

1 个回复
最合适的回答,由SO网友:MikO 整理而成

我通过检查WP_Query. 我意识到生成的SQL查询有两个内部联接,一个用于meta_key 另一个用于实际meta_query.

基本上一方面是过滤那些showings_%_start_datetime 在接下来的七天里,另一方面(独立地)它将按他们的showings_%_start_datetime 价值

只是移动meta_query 基本查询的参数工作正常:

query = new \\WP_Query( array(
    \'numberposts\'   => -1,
    \'post_type\'     => \'film\',
    \'meta_key\'      => \'showings_%_start_datetime\',
    \'meta_value\'    => array( time(), strtotime( \'+7 days\' ) ),
    \'meta_type\'     => \'NUMERIC\',
    \'meta_compare\'  => \'BETWEEN\',
    \'orderby\'       => \'meta_value_num\',
    \'order\'         => \'ASC\',
));

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post

WordPress元查询和按自定义字段排序 - 小码农CODE - 行之有效找到问题解决它

WordPress元查询和按自定义字段排序

时间:2014-03-27 作者:MikO

我有一个自定义的帖子类型,名为“Films,带有名为Showings,其中有一个字段start_datetime“”类型为DateTime。。。

我想执行一个查询,以获取在未来7天内放映的所有电影,并想通过放映的start\\u datetime订购它们。

我有这个问题:

$query = new \\WP_Query( array(
    \'numberposts\'   => -1,
    \'post_type\'     => \'film\',
    \'meta_key\'      => \'showings_%_start_datetime\',
    \'orderby\'       => \'meta_value_num\',
    \'order\'         => \'ASC\',

    \'meta_query\'    => array(
        array(
            \'key\'       => \'showings_%_start_datetime\',
            \'value\'     => array( time(), strtotime( \'+7 days\' ) ),
            \'type\'      => \'NUMERIC\',
            \'compare\'   => \'BETWEEN\'
        )
    )
));
这将正确捕获在未来7天内放映的所有电影,但它会在FIRST 显示,我需要它在FIRST FUTURE 正在显示。。。有什么帮助吗?

例如:电影A今天上映
电影B明天上映,一年前又上映了一场。

我的结果将按顺序排列:先是B片,然后是A片(因为实际上B片是以A片开始放映的)。但我需要从另一个角度订购,因为电影A是未来第一部上映的电影

1 个回复
最合适的回答,由SO网友:MikO 整理而成

我通过检查WP_Query. 我意识到生成的SQL查询有两个内部联接,一个用于meta_key 另一个用于实际meta_query.

基本上一方面是过滤那些showings_%_start_datetime 在接下来的七天里,另一方面(独立地)它将按他们的showings_%_start_datetime 价值

只是移动meta_query 基本查询的参数工作正常:

query = new \\WP_Query( array(
    \'numberposts\'   => -1,
    \'post_type\'     => \'film\',
    \'meta_key\'      => \'showings_%_start_datetime\',
    \'meta_value\'    => array( time(), strtotime( \'+7 days\' ) ),
    \'meta_type\'     => \'NUMERIC\',
    \'meta_compare\'  => \'BETWEEN\',
    \'orderby\'       => \'meta_value_num\',
    \'order\'         => \'ASC\',
));

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post