利用关系字段的查询

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

我们可以把关系字段作为查询的参数,现在,在电影内容上会显示关联的人物,我们之前添加了一个工作字段,在创建电影和人物关系的时候,可以选择人物在当前这部电影里的工作。比如,导演,编剧,演员 等等 ...

我们可以使用这个字段的值筛选一下 相关人物 这个内容列表,可以分别显示相关的导演,编剧,或者演员。

先打开电影内容的模板文件 ... 找到显示相关人物的这块代码 ...

这里的 $connected 是一个自定义的查询 ... 在里面设置了一些查询参数 .. 比如查询的类型是 movie_to_people ... 查询的项目用 get_queried_object() 来获得 ..

在这里,我们可以再添加一个 connected_meta 参数 .. 在这个参数里,可以设置想要查询的关系字段和相应的值 ...

'connected_meta' =>array(),

比如我们想查询关联的所有演员 ... 输入 'job' => 'actor' .. job 是我们添加的工作字段的名称 ... 后面的 actor 是字段的值 .. 当初我们添加这个字段的时候,设置了如果选择 演员,那么保存的值就是这个 actor ...

保存一下 ... 回到前台的电影内容 ... 盗梦空间这个电影关联 克里斯托弗 这个人物的时候,工作字段选择的是 导演 ... 所以,刷新以后,这个人物应该就不会显示在这个相关人物的列表里了 ...

刷新 ... 你会发现 克里斯托弗 就不见了 ... 因为在这个显示相关人物的查询里,我们设定了 工作字段的值是演员 ... 所以,其它的 导演,或者编剧就不会显示在这里了 .

分列导演与演员

再回到电影内容的模板文件 ...

下面我们可以分别列出,与电影关联的导演和演员 ... 你可以再自定义一个查询 ... 修改一下 connected_meta 参数 ... 把 工作 字段的值设置为导演 ... 再用循环来输出关联的导演 ..

这里我们介绍一个新的方法来显示关联的内容 ... 可以使用 get_connected() 函数 ...

先删除掉这个自定义的查询 ... 然后输入

<?php $connected = p2p_type( 'movie_to_people' )->get_connected( get_queried_object(), $connected_actor ); ?>

这里我们设置了一下 get_connected() 两个参数,第一个参数是想要获取到哪个文章关联的内容,我们用了 get_queried_object() 获得当前内容,也就是当前显示的文章 ..

第二个参数是一些额外的查询参数,我们可以把这些参数放在 $connected 这个变量里 ...

在它的上面,我们再定义一下 $connected_actor 变量 ... 这些额外的查询参数会在一个数组里 ... array() ...

在里面,设置一下 'connected_meta' 参数 ... 'connected_meta' => array( 'job' => 'actor' )

修改一下输出相关人物的循环 ... 改一下这个标题 ... 改成演员 ... 再把 $connected 改成 $connected_actor ...

我们再复制一下整个这段代码 ... 从 $connected_actor 这个变量 ... 一直到下面的 wp_reset_postdata() ... 粘贴到它的上面 ...

再修改一下 ...

把 $connected_actor 改成 $connected_directors ... job 后面的 actor 改成 director ... 因为我们要输出关联的导演 ...

再改一下 get_connected() 函数里的第二个参数 ... 把 $connected_actor 改成 $connected_director ...

修改一下标题 ... 演员,改成 导演 ... 去掉输出角色名称的代码 ... 还有这些小横线 ...

回顾一下所有这些操作 ...

我们使用 get_connected() 来获取当前内容关联的内容,获取导演内容的 get_connected() 里添加了一个 $connected_director 变量,这个变量里添加了查询工作字段为导演的参数 ...

然后用 while 循环,来输出获取到的导演 ..

保存一下 ..

回到 盗梦空间 这个电影内容 ... 刷新 ...

现在,在导演的下面,会显示这部电影导演 .. ... 在演员的下面,会显示电影关联的演员 ...

利用关系字段的查询《 WordPress 内容关系 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点