解决相关内容的重复问题

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

在盗梦空间的相关电影这里,有重复的内容是因为,盗梦空间关联的 克里斯托弗 还有 约瑟夫 这两个人物内容,都关联了 蝙蝠侠:黑暗骑士崛起 , 这个电影内容,所以在相关电影这里会出现两次蝙蝠侠这个电影内容 ...

解决这个问题的方法就是,使用 get_related() 获取到的内容的 ID,重新索引一下获取到的这些内容  ... 这样重复的内容只会保留一个。后把重新索引之后的结果会是一个数组,把这个数组交给一个变量,然后再想办法循环输出这个变量里的内容。

先打开电影内容的模板文件 ... 在 get_related() 所在的这行代码的下面,我们先去定义一下空白的数组 ... 这个数组会存放索引之后的结果 ...

<?php $related_movie = array(); ?>

然后在它的下面,我们可以使用 foreach() 循环 ... <?php foreach ( $related->posts as $post ) {} ?> ... 这里的 $related 就是上面使用 get_realted() 那行代码获取到的所有的相关内容 ...

这行代码的意思就是,循环执行把 $related 里面的每个文章内容交给 $post 这个变量 .. 真到 $related 里已经没有文章内容为止 ...

在循环的过程中,会执行在 foreach 里面的代码 ... 在它的里面我们再输入 ...

$related_movie[ $post->ID ] = $post;

我们在前面定义了一个空白的数组,$related_movie ... 里面没有任何的内容 ... 这行代码的意思是为这个数组添加些内容 ... 添加的内容就是相关内容的文章 ...

这段代码解决了相关内容里的重复的问题 ... 下面我们要做的是把 $related_movie 里的内容再循环显示出来 ...

我们可以去掉前面添加的这个循环的代码 ... 然后我们使用 foreach() 循环显示 $related_movie 里的东西 ...

<?php foreach ( $related_movie as $post ) : setup_postdata( $post ); ?>
<?php endforeach; ?>

代码的意思是,把 $related_movie 里的每个项目都交给 $post ... 每次给一个 ... 直到 $related_movie 里没有项目为止,也就是没有相关内容为止。

然后把每次得到的结果,使用 setup_postdata() 去处理一下 ... 这样我们可以在这个循环里使用模板标签来显示相应的内容 ... 比如 the_title() 会显示文章的标题 ... the_content() 会显示文章的内容等等 ...

在这个 foreach 和 endforeach 之间,我们添加一个 <?php the_title(); ?><br> ... 显示相关内容的标题 ... 你可以在这个循环里添加其它的你想显示的东西...

在循环结束的地方,我们再用一个 wp_reset_postdata() 恢复一下 ... <?php wp_reset_postdata() ?>

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

现在,相关电影 里,就没有重复的内容了。

解决相关内容的重复问题《 WordPress 内容关系 》

统计

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

社会化网络

关于

微信订阅号

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