显示id等于关系值的帖子

时间:2021-05-19 作者:codeminator

我正在尝试在wp admin中解决以下场景:

当特工登录时,他应该只能看到与他有关系的演员。(第页:wp admin/edit.php?post\\u type=actor)在参与者的帖子(post\\u type actor)中,我有一个关系字段(名为:your\\u agent),其中显示所有代理(post\\u type人才代理)。

代理帖子的ID是示例1。代理人应该只看到选择其职位的演员。(ID为1的帖子)

关系中所选帖子的ID等于代理帖子的ID时。拥有该职位的人才代理(当前登录代理)应该看到该演员。

这是我目前掌握的代码:

function current_user_related_posts($query)
{
    if( is_user_logged_in() ) { // check if there is a logged in user 
     
        $user = wp_get_current_user(); // getting & setting the current user 
        $roles = ( array ) $user->roles; // obtaining the role 
     
        return $roles; // return the role for the current user 
     
    } else {
        return array(); // if there is no logged in user return empty array  
    }
    
    $args = array(
      \'post_type\' => \'actor\',
      \'post_status\' => \'publish\',
      \'meta_query\' => array(
        \'relation\' => \'AND\',  
        array(
          \'key\' => \'talent-agents_id\',
          \'value\' => $post_id,
          \'compare\' => \'=\'
        ),
        array(
          \'key\' => \'your_agent\',
          \'value\' => $post_id,
          \'compare\' => \'=\'
        )
      ),
      \'fields\' => \'id, your_agent\'
    );
    $query = new WP_Query( $args );

    if( current_user_can(\'install-plugins\') ) {
        $query->the_post(\'actor\');
    }
    return $query; 
}
我使用高级自定义字段PRO创建字段。

这就是演员帖子上的关系字段的样子。enter image description here

1 个回复
SO网友:codeminator

最终我解决了这个问题。我在前端页面上显示了“动态视图”元素中的演员(来自dynamic.ooo)。

我将筛选条件设置为:按这些条件筛选field=relatie\\u test(基于用户的关系字段)operator=LIKEvalue=user(ID)

这对我来说很有帮助。

相关推荐

WP_QUERY:除了自定义帖子类型之外,如何搜索标签?

下面是到目前为止我对自定义post类型(place)的自定义rest端点(\'placesdb/v1/search?term=\')的了解。这将成功返回标题或内容中包含搜索词的所有位置。但是,我还想返回与搜索项匹配的所有标记(标记存档页)(与调用非自定义“/wp/v2/tags?search=”的结果相同)。是否可以以某种方式将标记结果添加到位置结果?我已经成功地实现了通过ajax分别调用位置和标记端点的前端方法,但我宁愿一下子获得所有数据。因此,我尝试创建这个自定义端点。function placesS