wordpress在Feed中插入版权申明、相关文章、随机文章

05-04 | 夜光 | IT记录

备注:如果需要在文章末尾也插入,则在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');
本文标签:
本文链接: wordpress-feed-related-random-posts/
版权所有: 玻璃泉, 转载请注明本文出处。