7+ WordPress RSS Feed 设置及优化技巧

创造未来
创造未来
创造未来
686
文章
0
评论
2017年8月5日20:23:117+ WordPress RSS Feed 设置及优化技巧已关闭评论 已被37 人盯上 2966字阅读9分53秒

之前已经介绍了 WordPress的RSS Feed地址是什么?如何添加?如何订阅?,今天补充一下 WordPress RSS Feed 设置及优化技巧。

RSS Feed 基本设置

在后台 > 设置 >阅读,可以设置 Feed 输出的篇数和类型:

wordpress-rss-feed-hacks-wpdaxue_com

注:如无特殊说明,下面的代码都添加到当前主题的 functions.php 文件即可

Feed 输出自定义内容

在feed中输出自定义内容可以通过 ‘the_content’ 这个 filter 钩子轻松实现,我们要做的就是使用 is_feed() 这个条件标签来判断只在 Feed 输出内容。例如下面的例子:

function custom_rss_feed_content($content) { //定义新函数
	if(is_feed()) { //只在Feed中执行
		$output = '欢迎访问 https://w.boruitao.com'; //添加自定义内容
		$content = $content . $output ; //重新设定文章内容 $content
	}
	return $content; //返回最后的文章内容
}
add_filter('the_content','custom_rss_feed_content'); //通过钩子挂载该函数

注:

1. 代码中的 $content 是WordPress预留的 文章内容变量,$output 是我们自定义的变量,用来添加自定义内容;

2. $content . $output 表示在文章原文的后面添加 $output 的内容,如果你想在原文前面添加,可以改为 $output . $content

3. $output 后面的自定义内容可以是 HTML 代码,比如下面的例子:

//Feed输出版权信息
function wpdaxue_feed_copyright($content) {
	if(is_feed()) {
		$post_title = get_the_title(); //获取原文标题
		$post_link = get_permalink($post->ID); //获取原文链接
		$output = '<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" rel="external nofollow" target="_blank" href="https://w.boruitao.com/wp-content/themes/begin/go.php?url=aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktbmMtc2EvMy4wLw==" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="'.home_url().'">'.get_bloginfo('name').'</a><br />转载请注明转自《<a rel="bookmark" title="' . $post_title . '" href="' . $post_link . '">' . $post_title . '</a>》</p>';
		$content = $content . $output ;
	}
	return $content;
}
add_filter ('the_content', 'wpdaxue_feed_copyright');

 

Feed 输出自定义字段

如果你在文章中使用了自定义字段,要在Feed中输出的话,可以使用 get_post_meta() 函数获取自定义字段的值。假设你要调用的是 copyright 这个自定义字段,可以使用下面的代码:

//Feed 输出自定义字段
function fields_in_feed($content) {
	if(is_feed()) {
		$post_id = get_the_ID(); //获取文章ID
		$output = get_post_meta($post_id, 'copyright', true) ; // 获取字段 copyright 的值
		$content = $content.$output;
	}
	return $content;
}
add_filter('the_content','fields_in_feed');

Feed 输出文章特色图像

//Feed 输出文章特色图像(缩略图)
function rss_post_thumbnail($content) {
	global $post; //查询全局文章
	if(has_post_thumbnail($post->ID)) { //如果有特色图像
		$output = get_the_post_thumbnail($post->ID) ; //获取缩略图
		$content = $output . $content ;
	}
	return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

Feed 只输出简码内容

//Feed 只输出简码(shortcode)内容
function rssonly_content( $atts, $content = null) {
	if (!is_feed()) return "";//如果不是Feed,不返回内容
	return $content;
}
add_shortcode('rssonly', 'rssonly_content'); //注册简码 rssonly

在写文章的时候,使用简码 [rssonly] 包含的内容,只会在Feed输出:

[rssonly] 非常感谢访问www.boruitao.com [/rssonly]

在 Feed 中排除分类

//在Feed中排除某些分类
function exclude_cat_feed($query) {
	if(is_feed()) {
		$query->set('cat','-1'); //排除ID为 1 的分类
		return $query;
	}
}
add_filter('pre_get_posts', 'exclude_cat_feed');

如果要排除多个分类,将第 4 行修改为下面的代码:

$query->set('cat','-1, -4, -7'); //排除ID为 1、4、7 的分类

Feed 输出自定义文章类型的内容

请移步阅读《让WordPress RSS Feed输出自定义文章类型的内容

禁用所有 Feed 订阅

如果你不愿意让别人订阅的你网站,可以使用下面的代码:

//禁用Feed订阅
function wp_disable_feed() {
	wp_die( __('抱歉,本站不支持订阅,请返回<a href="'. get_bloginfo('url') .'">首页</a>') ); 
}
add_action('do_feed', 'wp_disable_feed', 1);
add_action('do_feed_rdf', 'wp_disable_feed', 1);
add_action('do_feed_rss', 'wp_disable_feed', 1);
add_action('do_feed_rss2', 'wp_disable_feed', 1);
add_action('do_feed_atom', 'wp_disable_feed', 1);

好了,今天就分享这些,如果你还知道其他Feed优化技巧,欢迎和我们一起分享。

相关推荐:

3 个 WordPress Feed订阅统计插件

WordPress禁止采集RSS内容的插件:Block RSS Reading

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 本文由 发表于 2017年8月5日20:23:11
  • 除非特殊声明,本站文章均为网络收集,如侵犯您的权益可联系邮箱:541074440@qq.com
WordPress 4.9 正式版发布 WordPress资讯

WordPress 4.9 正式版发布

WordPress 4.9 正式版已发布,它能让您的设计工作流更顺滑,防止您的代码出现错误。不过呢小编我发现了部分英文还没被翻译成中文,而且编辑器里的清除超链接的按钮也没有了。主题预览有些卡顿。 大规模的定制器改善、代码错误检查和更多! 欢迎来到改良的定制器工作流,包括了设计草稿、锁、计划和预览链接等新功能。此外,代码语法高亮和错误检查能让您的站点建设体验更整洁平滑。我们还为您带来了全新画廊小工具...
2017年7款最好用的 WordPress 多语言翻译插件 Wordpress插件

2017年7款最好用的 WordPress 多语言翻译插件

写一篇好文章,通常要做大量工作,你自然就想把写出来的文章分享给最广大的受众。 现而今,最通用的语言当属英语。Ethnologue(民族语言网)在其2015年版用户手册中指出,在全球74亿人中,有近10亿人以某种形式说英语,有4亿人以英语为母语。 与使用互联网有关的数据则更加有趣。网络技术调查网站W3Techs公司的调查结果表明,虽然仅有25.9%的互联网用户说英语,但是多半,准确地说,53.6%的...
WordPress 4.8.3 安全更新 WordPress资讯

WordPress 4.8.3 安全更新

WordPress 4.8.3 是一个安全版本,主要修复之前版本存在的安全问题: 之前版本的 $wpdb->prepare()  可以创建意想不到的和不安全的查询,导致潜在的SQL注入。WordPress 核心并没有直接受到这个问题的攻击,但是我们已经添加了增强功能来防止插件和主题意外地造成漏洞。 此外,WordPress 4.8.3 还包含的  esc_sql()  函数的行为变化。大多数...
美化文章标题和内容--WordPress集成有字库字体插件 Wordpress插件

美化文章标题和内容–WordPress集成有字库字体插件

有字库简介 有字库是全球第一中文Web Font(网络字体)服务平台。 我们致力于美化网页界面,降低网页设计和维护的难度,同时提升效率。 Web Font 的服务在国外已经比较普及, 著名的有Google Fonts、Typekit等网站,但是国内在中文Web Font上面一直是一片空白,众多中文网站设计者们只能望洋兴叹。 有字库为此应运而生。 在正式介绍插件以前,先来普及下有字库能够干什么,换句...