如何创建具有1个以上关系的元字段?

时间:2019-06-13 作者:Himad

我正在创建一个招聘插件。有一个自定义的帖子类型叫做opening, 它有一个显示select 带有候选列表的字段(每个选项的值都是作为WP用户的候选ID)。

现在,当文章保存后option 字段的,作为帖子的元字段添加。问题是,我需要知道候选人的身份证以及将候选人分配到空缺职位的招聘人员的身份证。

我尝试将元字段添加为opening-candidate-{$candidateID}-recruiter, 并将recruiterID指定为行值,但是,在DB中插入动态命名列是不对的。

示例:

enter image description here

如果有更好的办法来处理这个问题,我将不胜感激!

1 个回复
SO网友:freejack

更好的方法是保存两个元字段。一个是候选人ID,一个是招聘人员。

然后,当需要查询帖子时,应使用WP\\u Meta\\u查询,并将Meta字段和relation参数设置为“and”:

$args = array(
  \'post_type\'  => \'opening\',
  \'meta_query\' => array(
    \'relation\' => \'AND\',
    array(
      \'key\'     => \'open_candidate\',
      \'value\'   => $candidateID,
      \'compare\' => \'=\'
    ),
    array(
      \'key\'     => \'recruiter\',
      \'value\'   => $recruiterID,
      \'compare\' => \'=\'
    )
  )
);

$posts = new WP_Query( $args );
或者,如果您拥有该职位,需要找到候选人和招聘人员,您可以使用:

$candidateID = get_post_meta( $post_id, \'open_candidate\', true );
$recruiter = get_post_meta( $post_id, \'recruiter\', true );
这还没有经过测试,但应该可以。

WP\\U Meta\\U查询的Codex参考:https://codex.wordpress.org/Class_Reference/WP_Meta_Query

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。