用户登录

在电影内容里添加关系字段来相关人物内容,前面我们已经在电影内容上显示出了相关的人物内容,这个视频我们来看一下在人物内容上显示关联它的电影的内容。

这里我们专门为人特内容准备了一个模板文件,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

其它地方可以不用动 ...

保存 ... 回到前台 ... 打开一个 人物内容 ...

你会看到,在人物内容上面,会显示出所以关联它的电影内容 ...

显示反向关系《 WordPress 自定义内容类型 》

统计

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

社会化网络

关于

微信订阅号

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