【问题标题】:get_posts using a multidimensional array and 2 meta keysget_posts 使用多维数组和 2 个元键
【发布时间】:2014-10-31 13:36:27
【问题描述】:

我正在尝试从元键获取帖子:sgt_slide 和 sgt_slide_home。问题是函数get_posts 给我一个数组,其中包含一个仅来自sgt_slide 的对象(帖子类型是帖子),尽管sgt_slide_home(帖子类型是附件)满足查询的要求显示出来。

$args = array(
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key' => 'sgt_slide',
            'value' => 'on',
            'compare' => '='
        ),
        array(
            'key' => 'sgt_slide_home',
            'value' => 'on',
            'compare' => '='
        )
    ),
    'no_found_rows' => true, //exclude unnecessary paging calculations
    'numberposts' => -1,
    );
$slides = get_posts($args);
var_dump($slides);

结果是

array (size=1)
  0 => 
    object(WP_Post)[309]

预期输出

array (size=1)
  0 => 
    object(WP_Post)[309]
  1 => 
    object(WP_Post)[309]
   .
   .
   // should read also the posts with meta key sgt_slide_home

在postsmeta 表中,来自sgt_slide 的帖子(帖子类型= 帖子)和来自sgt_slide_home 的帖子是可见的,但它只读取来自sgt_slide 的帖子

【问题讨论】:

    标签: php arrays wordpress multidimensional-array


    【解决方案1】:

    如果您要查询帖子和附件,则必须在 post_status 数组中包含 inherit:

    'post_status' => array( 'publish', 'inherit' )
    

    【讨论】:

    • 感谢您提供帮助,但仍然只显示一个帖子。并检查,其他附件,有帖子已发布,并且已发布。顺便说一句,我如何检查以确保附件处于已发布状态。
    • 附件总是继承父帖子的状态。因此,在数据库中,它们具有继承状态。您是否在查询中添加了post_type => array( 'post', 'attachment' )?
    • 确实,这就是它所缺少的 post_type => array( 'post', 'attachment' )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多