WordPress按帖子类型的过滤器关系

时间:2019-04-30 08:55:55

标签: wordpress

我使用Toolset插件创建了两种自定义帖子类型:sponsorbook

我已经在这两种帖子类型之间建立了一种关系(使用Toolset):发起人可以拥有一本或多本书籍(关系的标签为sponsor-book)。

重要提示:一本书不能有赞助商作为父母。

我需要的是让所有赞助商和所有书籍都没有赞助商。

这就是我的工作(包括带赞助商的书,我不想这样做):

$args = array(
    'post_type' => array('sponsor', 'book')
);
$posts = get_posts( $args );

如何排除有赞助商的图书?

1 个答案:

答案 0 :(得分:0)

尝试一下。首先,我考虑了发起人和书帖类型的对象。通过获取两个帖子类型的ID,我检查了它们是否具有父级的工具集,并将其插入过滤后的数组中。然后打印那些过滤后的数组的帖子标题。

$args = array(
  'post_type' => array('sponsor', 'book')
);
$both_posts = get_posts( $args );

$arr = array();
$num= 0;
if( $both_posts ): 

  foreach( $both_posts as $k => $both_post ): 

    $posts_without_sponsor_id = toolset_get_related_post( 
        $both_post->ID,
        'sponsor-book', //slug of relationship
        'parent'
    );

    if( !$posts_without_sponsor_id ):
        $arr['filteredposts'][$num] = $event->ID;
        $num++;
    endif;

   endforeach;

 endif;

// Filtered IDs
if($arr['filteredposts']): 
foreach( $arr['filteredposts'] as $filtered ):
    echo $filtered->post_title;
endforeach;
endif;