• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 1

    WordPress根据标签实现猜你喜欢

    Posted by 撒得一地 on 2015年10月27日 in wordpress笔记
    国外稳定加速器推荐    Express | Vypr

    许多大型网站都有猜测喜欢的功能,特别是购物网站,因为它们根据用户的搜索习惯进行大数据统计,然后根据长期的统计去猜测用户可能喜欢哪些商品,这样的统计往往命中率极其高。然而,作为个人博客站长,我们很多时候没有这个能力也没有这个精力去进行网站大数据的搜集和统计。不过,我们依然可以根据文章标签的设定来简易的实现猜你喜欢这个功能。

    我们知道,WordPress下每个标签都记录了相关文章列表。所以,当某个用户访问某篇文章时,你可以猜测这篇文章标签下的其它文章也是用户感兴趣的。

    而且,我们还可以进一步完善这个功能,比如在发布文章时,文章标签设定要尽量符合文章的中心思想,而且要多维度的挖掘文章标签,因为一篇文章往往不止一个标签。当分类精准和文章增加后,命中率也会有所提高。

    下面介绍代码实现方法:

    方法一
    首先获取文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章可能用户也会感兴趣。

    <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>
    

    方法二:
    该方法与上面那个方法思想一致,不同的是,在获取文章的时候是以SQL语句来直接读取数据库。

    <ul id="tags_related">
    <?php
    global $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>
     
    

     

    标签:

    上一篇:

    下一篇:

    相关推荐

    1 Comment

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    9 + 6 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 时时乐上海彩票控开奖 六合彩走势图 牌九玩法 南粤风采36选7开奖 排列3字谜 重庆幸运农场下载 北京赛车网站 3.29北京赛车pk10停售 pk10有钱真的能赚钱 双色球胆拖投注深度详解 超级大乐透规则图解 上必发北京pk10开奘结果查询 快乐10分玩法 重庆幸运农场手机版 5开奖结果 排列3 时时彩5星缩水工具