备注:如果需要在文章末尾也插入,则在is_feed()后面用“或”逻辑符添上is_single()即可。
在主题functions.php中加入以下代码即可:
/*Related Posts*/ $wp_rp=array( 'limit'=>8, //相关文章数量 'wp_rp_rss'=>true, //是否在feed中显示相关文章 'wp_no_rp'=>'random', //无相关文章时的选择:text 或random(random-随机文章) 'wp_rp_date'=>true, //显示文章发布日期 'wp_rp_comments'=>true, //显示文章评论数 'wp_rp_title_tag'=>'strong', //选择相关文章标题标签h2,h3,h4,p,div等 ); function wp_get_random_posts($limitclause=""){ global $wpdb,$post; $q = "SELECT ID, post_title, post_content,post_excerpt, post_date, comment_count FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' AND ID != $post->ID ORDER BY RAND() $limitclause"; return $wpdb->get_results($q); } function wp_get_related_posts(){ global $wpdb, $post,$wp_rp; $limit =$wp_rp["limit"]; $wp_rp_title='您可能也喜欢:'; //相关文章标题 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 . "'"; } } if($limit){ $limitclause = "LIMIT $limit"; }else{ $limitclause = "LIMIT 10"; } $q = "SELECT p.ID, p.post_title, p.post_content,p.post_excerpt, 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){ //不存在相关日志则显示随机日志 if($wp_rp['wp_no_rp'] == "text"){ $output .= '<li>No Related Posts</li>'; //无相关文章时显示标题 }else{ if($wp_rp['wp_no_rp'] == "random"){ $wp_no_rp_text= '随便看看吧:'; //随机文显示标题 $related_posts = wp_get_random_posts($limitclause); } $wp_rp_title = $wp_no_rp_text; } } foreach($related_posts as $related_post){ $output .= '<li>'; if($wp_rp['wp_rp_date']){ $dateformat = get_option('date_format'); //$output .= mysql2date($dateformat,$related_post->post_date)." — "; //日期和文章标题间隔符,默认是 — } $output .= '<a href="'.get_permalink($related_post->ID).'" title="'.wptexturize($related_post->post_title).'">'.wptexturize($related_post->post_title).'</a>'; if($wp_rp["wp_rp_comments"]){ $output .= " (" . $related_post->comment_count . ")"; } $output .= '</li>'; } $output = '<ul>' . $output . '</ul>'; $wp_rp_title_tag = $wp_rp["wp_rp_title_tag"]; if(!$wp_rp_title_tag){$wp_rp_title_tag ='h3';} if($wp_rp_title != ''){$output = '<p><'.$wp_rp_title_tag.'>'.$wp_rp_title .'</'.$wp_rp_title_tag.'></p>'. $output;} return $output; } /*insert_feed*/ function insertFeed($content){ global $wp_rp; if (is_feed()){ if($wp_rp["wp_rp_rss"]){$output = wp_get_related_posts();} $insert = __('作者: ')."<a href='".get_option('home')."'>".get_the_author()."</a>, ".__('文章首发地: ')."<a href='".get_option('home')."'>".get_bloginfo('name')."</a><br /> ".__('本文链接地址: ')." <a href='".get_permalink()."' title='".get_the_title()."'>".get_permalink()."</a><br /> ".__('©版权所有,转载需注明作者和原始出处。'); $content =$content.$insert.$output; } return $content; } add_filter('the_content','insertFeed');