wordpress有许多完成相关文章功用的插件,插件的长处是装备简 单,可是或许会对网站的速度形成一些小的影响,所以许多人仍是比较喜爱用代码完成需求的功用,可是话又说回来了,代码完成也有缺陷,便是装备杂乱,不明白代 码的人彻底摸不着头脑或许只能照搬他人的代码,还不如用插件。
这儿我收拾编写了几种用代码完成相关文章的办法,这其中会具体标明各部分代码的效果,以及怎么自定义你想要的功用,期望对咱们有所协助,有什么问题 能够给本文宣布谈论,我会及时给你回复。开端之前,阐明一点,以下一切办法输出的HTML代码格局都是以下方式,你能够根据需求进行修正:
<ulid="xxx"> <li>*<atitle="文章标题1"rel="bookmark"href="文章链接1">文章标题1</a></li> <li>*<atitle="文章标题2"rel="bookmark"href="文章链接2">文章标题2</a></li> ...... </ul>
首要获取文章的一切标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章便是与该文章相关的文章了。现在能够见到的wordpress相关文章插件都是运用的这个办法。下面是完成的代码:办法一:标签相关
<ulid="tags_related"> <?php $post_tags=wp_get_post_tags($post->ID); if($post_tags){ foreach($post_tagsas$tag) { //获取标签列表 $tag_list[].=$tag->term_id; } //随机获取标签列表中的一个标签 $post_tag=$tag_list[mt_rand(0,count($tag_list)-1)]; //该办法运用query_posts()函数来调用相关文章,以下是参数列表 $args=array( 'tag__in'=>array($post_tag), 'category__not_in'=>array(NULL),//不包括的分类ID 'post__not_in'=>array($post->ID), 'showposts'=>6,//显现相关文章数量 'caller_get_posts'=>1 ); query_posts($args); if(have_posts()): while(have_posts()):the_post();update_post_caches($posts);?> <li>*<ahref="<?phpthe_permalink();?>"rel="bookmark"title="<?phpthe_title_attribute();?>"><?phpthe_title();?></a></li> <?phpendwhile;else:?> <li>*暂无相关文章</li> <?phpendif;wp_reset_query();}?> </ul>
办法二:分类相关运用阐明:”不包括的分类ID” 指的是相关文章不显现该分类下的文章,将同行的 NULL 改成文章分类的ID即可,多个ID就用半角逗号离隔。由于这儿约束只显现6篇相关文章,所以不论给 query_posts() 的参数 tag__in 赋多少个值,都是只显现一个标签下的 6 篇文章,除非第一个标签有1篇,第二个标签有2篇,第三个有3篇。。。。。。所以假如这篇文章有多个标签,那么咱们采纳的做法是随机获取一个标签的id, 赋值给 tag__in 这个参数,获取该标签下的6篇文章。
本办法是经过获取该文章的分类id,然后获取该分类下的文章,来到达获取相关文章的意图。
<ulid="cat_related"> <?php $cats=wp_get_post_categories($post->ID); if($cats){ $cat=get_category($cats[0]); $first_cat=$cat->cat_ID; $args=array( 'category__in'=>array($first_cat), 'post__not_in'=>array($post->ID), 'showposts'=>6, 'caller_get_posts'=>1); query_posts($args); if(have_posts()): while(have_posts()):the_post();update_post_caches($posts);?> <li>*<ahref="<?phpthe_permalink();?>"rel="bookmark"title="<?phpthe_title_attribute(); ?>"><?phpthe_title();?></a></li> <?phpendwhile;else:?> <li>*暂无相关文章</li> <?phpendif;wp_reset_query();}?> </ul>
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:123456@qq.com 我们将配合处理!
原文地址:WordPress相关文章的几种方法发布于2022-05-12 08:44:51