返回顶部
首页 > 资讯 > CMS >WordPress如何实现相关文章功能
  • 535
分享到

WordPress如何实现相关文章功能

wordpress 2023-03-02 20:03:24 535人浏览 薄情痞子
摘要

本篇内容主要讲解“WordPress如何实现相关文章功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WordPress如何实现相关文章功能”吧!

本篇内容主要讲解“WordPress如何实现相关文章功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WordPress如何实现相关文章功能”吧!

开始之前,说明一点,以下所有方法输出的html代码格式都是以下形式,你可以根据需要进行修改:

<ul id="xxx">
   <li>* <a title="文章标题1" rel="bookmark" href="文章链接1">文章标题1</a></li>
   <li>* <a title="文章标题2" rel="bookmark" href="文章链接2">文章标题2</a></li>
   ......
</ul>

方法一:标签相关

首先获取文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。下面是实现的代码:

<ul id="tags_related">
<?PHP
global $post;
$post_tags = wp_get_post_tags($post->ID);
if ($post_tags) {
  foreach ($post_tags as $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>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
    }
  }
  else {
    echo '<li>* 暂无相关文章</li>';
  }
  wp_reset_query(); 
}
else {
  echo '<li>* 暂无相关文章</li>';
}
?>
</ul>

使用说明:"不包括的分类ID" 指的是相关文章不显示该分类下的文章,将同行的 NULL 改成文章分类的ID即可,多个ID就用半角逗号隔开。因为这里限制只显示6篇相关文章,所以不管给  query_posts() 的参数 tag__in 赋多少个值,都是只显示一个标签下的 6 篇文章,除非第一个标签有1篇,第二个标签有2篇,第三个有3篇。。。。。。所以如果这篇文章有多个标签,那么我们采取的做法是随机获取一个标签的id,赋值给 tag__in 这个参数,获取该标签下的6篇文章。

方法二:分类相关

本方法是通过获取该文章的分类id,然后获取该分类下的文章,来达到获取相关文章的目的。

<ul id="cat_related"><?phpglobal $post;$cats = wp_get_post_categories($post->ID);if ($cats) {
   $args = array(
 'category__in' => array( $cats[0] ),
 '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>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li><?php
   }
 }
 else {
   echo '<li>* 暂无相关文章</li>';
 }
 wp_reset_query(); }else {
 echo '<li>* 暂无相关文章</li>';}?></ul>

方法三:标签相关,SQL获取

获取相关文章的原理与方法一相似,不过在获取文章的时候是以sql语句来直接读取数据库,从而随机获取6篇相关文章记录,而不是WordPress的函数query_posts().

<ul id="tags_related"><?phpglobal $post, $wpdb;$post_tags = wp_get_post_tags($post->ID);if ($post_tags) {
   $tag_list = '';
   foreach ($post_tags as $tag) {
       // 获取标签列表
       $tag_list .= $tag->term_id.',';
   }
   $tag_list = substr($tag_list, 0, strlen($tag_list)-1);

   $related_posts = $wpdb->get_results("
       SELECT DISTINCT ID, post_title
       FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
       WHERE {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
       AND ID = object_id
       AND taxonomy = 'post_tag'
       AND post_status = 'publish'
       AND post_type = 'post'
       AND term_id IN (" . $tag_list . ")
       AND ID != '" . $post->ID . "'
       ORDER BY RAND()
       LIMIT 6");
       // 以上代码中的 6 为限制只获取6篇相关文章
       // 通过修改数字 6,可修改你想要的文章数量

   if ( $related_posts ) {
       foreach ($related_posts as $related_post) {?>
   <li><a href="<?php echo get_permalink($related_post->ID); ?>" rel="bookmark" title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li><?php   }
   }
   else {
     echo '<li>暂无相关文章</li>';
   } }else {
 echo '<li>暂无相关文章</li>';}?></ul>

方法四:分类相关,SQL获取

获取相关文章的原理与方法二相似,不过在获取文章的时候是以SQL语句来直接读取数据库,从而随机获取6篇相关文章记录,而不是WordPress的函数query_posts().

<ul id="cat_related"><?phpglobal $post, $wpdb;$cats = wp_get_post_categories($post->ID);if ($cats) {
 $related = $wpdb->get_results("
 SELECT post_title, ID
 FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
 WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
 AND {$wpdb->prefix}term_taxonomy.taxonomy = 'category'
 AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
 AND {$wpdb->prefix}posts.post_status = 'publish'
 AND {$wpdb->prefix}posts.post_type = 'post'
 AND {$wpdb->prefix}term_taxonomy.term_id = '" . $cats[0] . "'
 AND {$wpdb->prefix}posts.ID != '" . $post->ID . "'
 ORDER BY RAND( )
 LIMIT 6");

 if ( $related ) {
 foreach ($related as $related_post) {?>
<li>* <a href="<?php echo get_permalink($related_post->ID); ?>" rel="bookmark" title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li><?php
   }
 }
 else {
   echo '<li>* 暂无相关文章</li>';
 } }else {
 echo '<li>* 暂无相关文章</li>';}?></ul>

方法五:作者相关

该方法是获取该文章作者的其他文章来充当相关文章,代码如下:

<ul id="author_related"><?php
 global $post;
 $post_author = get_the_author_meta( 'user_login' );
 $args = array(
       'author_name' => $post_author,
       'post__not_in' => array($post->ID),
       'showposts' => 6, // 显示相关文章数量
       'orderby' => date, // 按时间排序
       'caller_get_posts' => 1
   );
 query_posts($args);

 if (have_posts()) {
   while (have_posts()) {
     the_post(); update_post_caches($posts); ?>
 <li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li><?php
   }
 }
 else {
   echo '<li>* 暂无相关文章</li>';
 }
 wp_reset_query();?></ul>

时间效率对比

我们对以上各个相关文章代码执行时间进行测算,以便对以上各个的方法进行效率,给你的选择提供参考。以下是在同一篇文章中获取6篇相关文章,以上各方法最终测算的时间如下:

方法一:0.18067908287048  秒
    方法二:0.057158946990967 秒
    方法三:0.037126064300537 秒
    方法四:0.045628070831299 秒
    方法五:0.023991823196411 秒

到此,相信大家对“WordPress如何实现相关文章功能”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: WordPress如何实现相关文章功能

本文链接: https://lsjlt.com/news/198198.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • WordPress如何实现相关文章功能
    本篇内容主要讲解“WordPress如何实现相关文章功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WordPress如何实现相关文章功能”吧! ...
    99+
    2023-03-02
    wordpress
  • PHP如何实现“相关文章推荐”功能
    本篇内容介绍了“PHP如何实现“相关文章推荐”功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通常在做内容网站的时候,需要在每一篇文章中出...
    99+
    2023-06-20
  • WordPress 文章摘要功能实现代码
    WordPress 的文章摘要功能一般有两种实现方法,即使用 <!--more--> 标记或者利用现成的插件。对于前者,方便是方便,但会缩略内容后紧随全文阅读的链接,而且 RSS 中也会输出摘要。对于后者而言...
    99+
    2022-06-12
    WordPress 文章摘要
  • 关闭WordPress自动保存和文章修订功能
    今天发文章时,惊奇的发现文章的ID竟然已经到达了19了。鉴于我以前折腾Wordpress的经验,我知道这是Wordpress的“自动保存和文章修订功能”在作怪。但是,该怎么才能关闭Wordpres...
    99+
    2022-06-12
    自动保存 文章修订
  • Wordpress实现文章支持和反对功能的方法
    本文实例讲述了Wordpress实现文章支持和反对功能的方法。分享给大家供大家参考。具体分析如下: 如果你上网易或QQ网站都会看到文章页面有很多种支持和反对的功能,我们可以发表自己的意见,那么要如何实现文章支持和反对的功...
    99+
    2022-06-12
    Wordpress 文章 支持 反对 功能 方法
  • spring mvc+mybatis 构建cms实现UC浏览器文章相关功能
    最近公司在模拟UC浏览器做一个简单的cms系统,主要针对于企业内部的文章浏览需求,这边考虑用户大多用mobile浏览文章内容,故使用原生的ios和android进行开发,后面也会集成html5。 使用前后端分离解决方案(服务化的方式) 文章...
    99+
    2023-06-03
  • WordPress后台显示相关用户文章相关联评论的方法
    本文实例讲述了WordPress后台显示相关用户文章相关联评论的方法。分享给大家供大家参考。具体分析如下: 将下面的代码添加到当前主题的 functions.php 文件即可,代码如下:复制代码代码如下://后台只显示当...
    99+
    2022-06-12
    WordPress 后台 显示 相关用户 文章 评论 方法
  • WORDPRESS文章中微信打赏功能的2种实现方法
    本文实例讲述了WORDPRESS文章中微信打赏功能的2种实现方法。分享给大家供大家参考,具体如下: 打赏功能功能就是给我们一些资助了,写博客不容易所以会给一些内容与说明了,下面我们就一起来看2种给WORDPRESS文章添...
    99+
    2022-06-12
    WORDPRESS 文章 微信打赏
  • 如何使用Vue3实现文章目录功能
    这篇文章主要为大家展示了“如何使用Vue3实现文章目录功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Vue3实现文章目录功能”这篇文章吧。前言这一段时间一直在做一个博客项目 ...
    99+
    2023-06-29
  • dedecms文章页如何调用全站相关文章标签
    这篇“dedecms文章页如何调用全站相关文章标签”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • WordPress实现回复文章评论后发送邮件通知的功能
    本文实例讲述了WordPress实现回复文章评论后发送邮件通知的功能。分享给大家供大家参考,具体如下: 很多时候,人们都希望在自己的评论被管理员回复后会收到通知。该函数的作用就是回复后自动邮件通知评论者。 把下面的代码加...
    99+
    2022-06-12
    WordPress 回复 文章评论 发送邮件 通知
  • CSS如何调用全站相关文章
    这篇文章主要介绍“CSS如何调用全站相关文章”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS如何调用全站相关文章”文章能帮助大家解决问题。{dede:likea...
    99+
    2024-04-02
  • WordPress 实现文章评论排行榜
    用到了WordPress功能函数Query_post()的一种高级用法,就是获取本周或当月或最近30天评论最多的一定数量的日志。 使用方法是将以下各段代码放置到需要显示最热日志的主题模板文件中适当的位置即可,如边栏(si...
    99+
    2022-06-12
    WordPress 评论 排行榜
  • php相册功能该如何实现
    php相册功能该如何实现,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。php相册功能的实现方法:1、创建相册首页并实现分页效果;2、创建后台处理页面;3、实现相册上传页面;...
    99+
    2023-06-26
  • 如何在PHP CMS系统中实现文章置顶功能
    在PHP CMS系统中,文章置顶功能是一种非常常见的需求。这种功能可以让网站管理员优先展示某些重要的文章,从而提高网站访问者的注意度。在本文中,我们将介绍如何在PHP CMS系统中实现...
    99+
    2024-04-02
  • ajax如何实现文件异步上传并回显文件相关信息功能
    这篇文章主要介绍了ajax如何实现文件异步上传并回显文件相关信息功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:上传文件的信息<div class...
    99+
    2023-06-08
  • 使用 Vue3 实现文章目录功能
    前言 这一段时间一直在做一个博客项目 Kila Kila Blog,找了一圈发现没有特别满足自己需求的目录组件,所以决定自己动手,完成一个满足以下预期目标的目录组件: 自动...
    99+
    2024-04-02
  • Springboot+Vue+axios实现文章收藏功能
    最近在做毕设,也是第一次使用前后分离框架我就边学边用springboot+vue做了一个博客文章的收藏功能,写得不好见谅,算是一个学习笔记吧,给大家分享一下,后面可能还会做一个关注/...
    99+
    2024-04-02
  • 微信小程序实现文章关注功能详细流程
    目录1 数据源设计1.1 文章数据源1.2 关注数据源2 录入测试数据3 创建应用4 首页功能实现5 详情页功能实现6 获取用户的openid7 设置关注的低码方法8 发布预览9 总...
    99+
    2022-11-13
    微信小程序文章关注功能 小程序关注功能
  • python基于搜索引擎如何实现文章查重功能
    这篇文章给大家分享的是有关python基于搜索引擎如何实现文章查重功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作