查询、存储和使用来自两个独立的自定义帖子类型的数据

时间:2016-08-23 作者:Eva Schwartz

查询、存储和使用来自两种不同自定义帖子类型的数据

我有2个CPT:期限和地点

在我的查询中,我需要从两个CPT获取信息。

对于CPT“期限”;我需要知道它是否处于“活动”状态,如果是,则需要知道post\\u title()。对于CPT;\'Location“我需要知道它是否处于活动状态”,如果处于活动状态,则需要知道post\\u title()。

不仅如此,如果有多个“位置”,我需要显示所有位置(如果它们处于活动状态)。

有没有办法对付这只野兽?

下面是查询(后面是循环html将显示的流以供参考)-但它完全不起作用:

    $centre_type = get_field(\'site_primary_centre_type\', \'option\');
    $args = array(
    \'post_type\' => array(\'gym_location\', \'gym_term\'),
    \'orderby\' => \'title\',
    \'order\' => \'DESC\',
      \'meta_query\' => array(
                  array(
                  \'key\' => array(\'term_active\', \'location_active\'),
                  \'value\' => \'1\',
                  \'compare\' => \'==\'
                  )
        )
    );

    $query = new WP_Query( $args );

    if($query->have_posts()) : while ( $query->have_posts() ) : $query->the_post();

    <h5>term_title Timetable</h5>
    if ((1 location) && (location && term == active)) :
      [wcs location="location_title" term="term_title" style="responsive"]
    else 

    if ((more than 1 location) && (location && term == active)) :
      [su_tabs][su_tab title="location_title <?php echo $centre_type; ?>"]
      [wcs location="location_title" term="term_title" style="responsive"]
      [/su_tab]
      [/su_tabs]

  <?php endwhile; endif; // end of query ?>

1 个回复
SO网友:kingkool68

遗憾的是,对于自定义字段查询,不能将数组用于多个键。你想要的是这样的:

$args = array(
    \'post_type\' => array(\'gym_location\', \'gym_term\'),
    \'orderby\' => \'title\',
    \'order\' => \'DESC\',
    \'meta_query\' => array(
        array(
            \'key\' => \'term_active\',
            \'value\' => \'1\',
            \'compare\' => \'==\'
        ),
        array(
            \'key\' => \'location_active\',
            \'value\' => \'1\',
            \'compare\' => \'==\'
        ),
        \'relation\' => \'OR\',
    )
);
请参见https://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters