带有多个自定义字段的WP_QUERY

时间:2014-12-26 作者:yivi

我的问题是:

$products = new WP_Query( array(
        \'post_type\'      => \'ys_product\',
        \'orderby\'        => array( \'date\' ),
        \'order\'          => \'DESC\',
        \'posts_per_page\' => 8,
        \'meta_query\'     => array(
            \'relation\' => \'AND\',
            array(
                \'key\'   => \'ys_product_status\',
                \'value\' => \'ok\'
            ),
            array (
                \'key\'   => \'ys_product_start\',
                \'value\' => date(\'Ymd\'),
                \'compare\' => \'>=\'
            ),
            array (
                \'key\'   => \'ys_product_end\',
                \'value\' => date(\'Ymd\'),
                \'compare\' => \'<=\'
            )
        )
    ) );
在我的数据库中,有两个项目的post\\u类型为“ys\\u product”,post\\u meta如下所示:

项目1

meta\\U key ys\\U product\\U status=‘ok’

  • meta\\U key ys\\U product\\U start=‘20141101’
  • meta\\U key ys\\U product\\U end=‘20141230’
    • 第2项

      meta\\u key ys\\u product\\u status=‘ok’

    • meta\\u key ys\\u product\\u start=‘20141101’
    • meta\\u key ys\\u product\\u end=‘20150131’
    今天日期(‘Ymd’)的结果是‘20141226’,这似乎明显介于这些界限之间。

    但如果我只按“ys\\U product\\U status”(ys\\U product\\U状态)进行搜索筛选,则==“ok”(确定);我买了两件东西。但当我添加另外两个meta时,它根本不会返回任何结果。

    我做错了什么?

    谢谢和问候。(使用WP 4.1)

    1 个回复
    SO网友:yivi

    恐怕是愚蠢的拼写错误。

    这是:

    array (
                \'key\'   => \'ys_product_start\',
                \'value\' => date(\'Ymd\'),
                \'compare\' => \'>=\'
            ),
            array (
                \'key\'   => \'ys_product_end\',
                \'value\' => date(\'Ymd\'),
                \'compare\' => \'<=\'
            )
    
    应该是这样的:

    array (
                \'key\'   => \'ys_product_start\',
                \'value\' => date(\'Ymd\'),
                \'compare\' => \'<=\'
            ),
            array (
                \'key\'   => \'ys_product_end\',
                \'value\' => date(\'Ymd\'),
                \'compare\' => \'>=\'
            )
    

    结束

    相关推荐

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

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