国内外VPS
主机测评与优惠

WordPress两种不需要插件添加相关文章的方法

WordPress的强大和易用,在于无数的主题和插件,但插件多了会影响网站的速度和安全。如果能用简单代码实现需要的功能,还是用代码好了。
在每篇文章的末尾,显示相关文章,可以更好的留住客户。
下面提供两种方法:

第一种

在所用主题的functions.php文件中,添加如下代码

function wp_get_related_posts()
{
global $wpdb, $post,$table_prefix;
$limit = 10; //How Many Related Posts Displayed
if(!$post->ID){return;}
$now = current_time(‘mysql’, 1);
$tags = wp_get_post_tags($post->ID);
$taglist = “‘” . $tags[0]->term_id. “‘”;
$tagcount = count($tags);
if ($tagcount > 1) {
for ($i = 1; $i < $tagcount; $i++) {
$taglist = $taglist . “, ‘” . $tags[$i]->term_id . “‘”;
}
}
$limitclause = “LIMIT $limit”;
$q = “SELECT p.ID, p.post_title, p.post_date,  p.comment_count, count(t_r.object_id) as cnt FROM $wpdb->term_taxonomy t_t, $wpdb->term_relationships t_r, $wpdb->posts p WHERE t_t.taxonomy =’post_tag’ AND t_t.term_taxonomy_id = t_r.term_taxonomy_id AND t_r.object_id  = p.ID AND (t_t.term_id IN ($taglist)) AND p.ID != $post->ID AND p.post_status = ‘publish’ AND p.post_date_gmt < ‘$now’ GROUP BY t_r.object_id ORDER BY cnt DESC, p.post_date_gmt DESC $limitclause;”;
$related_posts = $wpdb->get_results($q);
$output = “”;
if (!$related_posts)
{
$output .= ‘

  • No Related Posts
  • ’;
    }
    foreach ($related_posts as $related_post )
    {
    $dateformat = get_option(‘date_format’);
    $output .= ‘
  • ’;
    $output .= ‘ID).'” title=”‘.wptexturize($related_post->post_title).’ (‘.mysql2date($dateformat, $related_post->post_date).’)”>’.wptexturize($related_post->post_title).' (‘.$related_post->comment_count .’)’;
    $output .= ‘
  • ’;
    }
    $output = ‘

    Related Posts

      ’ . $output . ‘
    ’;
    return $output;
    }
    function wp_related_posts_attach($content)
    {
    if (is_single()||is_feed())
    {
    $output = wp_get_related_posts();
    $content = $content . $output;
    }
    return $content;
    }
    add_filter(‘the_content’, ‘wp_related_posts_attach’,100);

    第二种

    在所用主题的single.php添加,一般添加在之后

    Related Posts



      $tags = wp_get_post_tags($post->ID);
      if ($tags) {
      $first_tag = $tags[0]->term_id;
      $args=array(
      ’tag__in’ => array($first_tag),
      ’post__not_in’ => array($post->ID),
      ’showposts’=>10,//Display 10 related posts
      ’caller_get_posts’=>1
      );
      $my_query = new WP_Query($args);
      if( $my_query->have_posts() ) {
      while ($my_query->have_posts()) : $my_query->the_post(); ?>
    • ” rel=”bookmark” title=””>

    • endwhile;
      }
      }
      wp_reset_query();
      ?>

     

    赞(0)
    版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
    文章名称:《WordPress两种不需要插件添加相关文章的方法》
    文章链接:https://www.liuzhanwu.com/10698.html
    本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

    登录

    找回密码

    注册