在电影内容里添加关系字段来相关人物内容,前面我们已经在电影内容上显示出了相关的人物内容,这个视频我们来看一下在人物内容上显示关联它的电影的内容。
这里我们专门为人特内容准备了一个模板文件,single-people.php ... 打开这个模板文件 ... 选择想要显示关联它的电影内容的位置 ...
我们要做的就是找到指定条件的电影内容,也就是找到所有 相关人物 字段的值与当前人物内容的 id 相匹配的电影内容。首先内容的类型应该是 movie,也就是电影,然后去查询 相关人物 这个自定义字段。
我们可以使用 WordPress 的 get_posts() 去做这件事。
可以把使用这个函数获取的值交给一个变量 ...
<?php
$posts = get_posts();
?>
然后我们再设置一下这个函数的参数 ... 这些参数会在一个数组里 ... 先输入 ... array()
先设置一下内容类型的名称 ....
'post_type' => 'movie',
意思就是,我们想要获取的内容类型是 movie ... 就是电影 ...
然后可以使用 meta_query 这个参数 .... 设置一下想要查询的自定义字段的相关参数 ...
‘meta_query’ => array()
在这个数组里,我们需要再嵌套一个数组 ...
‘meta_query' => array(
array(
)
)
先设置一下想要查询的自定义字段的 key ,也就是自定义字段的名称 ...
'key' => 'related-people',
相关人物这个字段的名称是 related-people ...
然后再设置一下这个字段的值 .... 这个字段的值就是当前这个人物内容的 id ...
'value' => get_the_ID(),
电影内容的 ID 可以使用 get_the_ID 来获取到 ....
最后再设置一下操作符 ... 设置为 LIKE
'compare' => 'LIKE'
这段代码合起来的意思就是,找到相关人物这个自定义字段的值等于当前人物内容的 ID 的所有的电影内容 ....
获取到的值会在一个数组里,并且这个数组交给了 $posts 这个变量 ... 下面要做的就是使用 foreach 语句来循环显示出在这个数组里的项目 ....
我们可以复制之前用来显示相关人物的循环代码 ... 打开 single-movie.php ... 找到这段代码 ... 复制一下
回到 single-people.php ... 粘贴到刚才那段代码的下面 ...
然后我们再修改一下 ... 先去掉第一行代码 ....
把 $avatar_id 改成 $poster_id... 后面 get_filed() 里的 avatar ,改成 poster ... 因为我们要获取 poster 字段的值 ...
wp_get_attachment_image() 里的 $avatar_id 也改成 $poster_id
其它地方可以不用动 ...
保存 ... 回到前台 ... 打开一个 人物内容 ...
你会看到,在人物内容上面,会显示出所以关联它的电影内容 ...