WordPress的RSS订阅优化

一、确定一个永久的RSS地址

WordPress默认的订阅地址是www.domain.com/feed,使用这样的地址有三个比较大的缺陷:

1、无法统计多少人订阅了你。
2、博客更换域名或者被GFW后原RSS地址不能访问了,原来的读者群就流失了。
3、输出的内容太单调,不美观,且没有让用户选择订阅工具的按钮(链接)。

所以最好使用feedbuner和feedsky这类第三方Feed工具。第三方feed工具会烧录博客的原有RSS,给你分配一个新的可订阅的RSS页面,除了界面美观外,feedsky还可以根据你的订阅量和类别为你做一些展示,提高你的订阅量。

因为众所周知的原因(比如FeedBurner挂了)和RSS提供商自身不稳定(比如FeedSky出现故障)的原因,有时这类第三方feed工具提供的RSS地址不能访问,所以建议参考月光博客采用的方法——使用二级域名绑定到这个RSS地址,然后让访客订阅这个二级域名(目前只有feedsky免费提供域名绑定的服务,FeedBurner要收费)。当feed地址不能访问时,可以重新绑定或指向到可用的feed上,避免了读者群的流失。

以我的博客为例,我认为从稳定性上看:feed.linggan.com>feed.feedsky.com/chenfangyi>blog.linggan.com/feed,所以最终选择的是feed.linggan.com作为订阅的地址。

二、更新Wordpress上的默认地址为新地址

接下来,你要在你的博客上做些修改,让访客订阅到的都是这个自定义的地址,而不是原来的rss地址。

1、在博客的侧边栏sidebar上加一个widget或者直接修改模板,把RSS地址改为自定义的RSS地址。比如我博客上的:

image 

可在sidebar.php里修改代码实现,这些代码可从你的feedsky或feedburner的feed页面的代码中获取。

2、修改博客头里指定的RSS地址。

但如果访客不是通过点击这些链接订阅的,而是直接在浏览器上点击订阅图标或者在Google Reader里输入你的博客地址(非RSS地址)来订阅的,那就不是订阅到你设置的这个RSS地址了,而是订阅到Wordpress默认的rss。

因为Google Reader和带RSS订阅功能的浏览器判别一个网站的RSS地址都是在head里判断的,我们可以看到head里的代码是(以我的博客为例):

<link rel="alternate" type="application/rss+xml" title="陈方毅的灵感日志 RSS Feed" href="http://blog.linggan.com/feed" />

所以我们还需要做少量的代码上的修改。

修改模板的头文件header.php,把以下这句:

<link rel="alternate" type="application/rss+xml" title="<?php bloginfo(‘name’); ?> RSS Feed" href="<?php bloginfo(‘rss2_url’); ?>" />

换成:

<link rel="alternate" type="application/rss+xml" title="<?php bloginfo(‘name’); ?> RSS Feed" href=http://feed.linggan.com />

这样以后通过任何形式的订阅就都是用你自定义的这个地址了。

三、让所有地方的feed地址转向到新地址

以上虽然更改了feed地址,但你难保外链、搜索引擎收录的、或者以前写的文章中不出现你的旧feed地址,所以为了确保没人再订阅旧的RSS地址,你还需要对旧的RSS地址进行转向。不过Feedsky官方提供的RSS转向工具在wordpress2.8.4中不能使用了,Feedsky也不再提供下载,所以这里提供一个根据feedburner转向插件FeedBurner FeedSmith修改的插件FeedSky FeedDuetG。启用这个插件后,设置一下你的新Feed地址,就可以在访问wordpress内置的rss地址的时候跳转到你的新Feed。

四、提醒访客订阅

以上是让你的RSS地址在读者的阅读器中尽量的统一,我们还可以做一些优化,提醒未订阅的访客来订阅你的博客,这里介绍一个非常好的插件——WP Greet Box,这个插件能够根据访客的特性个性化的提醒访客订阅你的博客。

比如,你可以通过这个插件设置:

对第一次访问博客的访客,在文章的上方提醒“您是第一次访问本博客,本博主题为业界评论和电子商务,若您对此感兴趣,可以点此订阅”

对Google搜索进来的访客:可以提醒“Hi!Googler!我也用Google,如果您对本博的内容感兴趣,可以点此订阅”

不过注意,需要在这个插件的General Configuration的Advanced Options设置中,把默认的RSS地址改为你现在的RSS地址。如下图所示:

image

WP Greet Box还有很多其他的自定义设置,非常值得一试。

五、优化访客订阅体验

对已经订阅的访客,如果在阅读器中看到一篇很适合自己口味的文章,看完可能还会觉得意犹未尽,如果这时能有一些推荐或者相关文章的列表,则能够吸引他再去看看其他的文章。这可以通过WordPress Related Posts Plugin这个优秀的插件来实现,注意安装好后要在插件的设置里选中“Related Posts for RSS”。

另外,有的读者喜欢分享,如果你觉得有必要,可以在feedsky的“feed互动”中添加以下效果,方便你的读者分享你的文章。

 

转载于:https://www.cnblogs.com/snake-hand/archive/2013/06/10/3131137.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

练习IO流

package IODemo;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Properties; import java.util.Scanner;/*** author Alina* date 2021年12月08日 11:49 下午* 已知用户有一个文本文档&#xff0c;里面包含的键值对…

轻量级的ORM框架 fluentdata

codePlex 地址&#xff1a;http://fluentdata.codeplex.com/releases/view/82592转载于:https://www.cnblogs.com/Qiaoyq/archive/2013/06/11/3131428.html

(JAVA)线程

/*** author Alina* date 2021年12月12日 11:37 下午* 线程&#xff1a;分为三个级别* 1.定义类&#xff0c;继承Thread 类&#xff0c;继承线程类* 该类重写run&#xff08;&#xff09;方法* 创建子类对象* * 执行join方法的线程&#xff0c;会一次执行完毕&#xff0c;其…

(JAVA)序列化

对象序列化与反序列化 对象中的数据有&#xff1a;new Object() 自己的成员变量 如果对象的基本数据不变&#xff0c;反复使用 什么是序列化 将对象中的数据以二进制方式存入硬盘&#xff0c;永久保存 二进制文件可以在网络上传输 反序列化 将存在硬盘中的二进制文件,读取出来还…

某final神犇的工作感想

http://hi.baidu.com/codemao/item/0bc294417fbaeceba5c06690  。。。 这一年&#xff0c;工作上也渐渐步入正轨了&#xff0c;首先&#xff0c;我很庆幸在我刚工作的时候就能碰到一个好的经理&#xff0c;我想&#xff0c;工作上最重要的事情莫过于跟对组&#xff0c;跟对经理…

(JAVA)线程之lock和死锁(例)

package thread; import java.util.concurrent.locks.*;/*** author Alina* date 2021年12月20日 11:07 下午* JDK5新特性* import java.util.concurrent.locks 包* lock接口* void lock() 获取锁&#xff0c;进同步* void unlock () 释放锁&#xff0c;出同步***/ c…

XML工作总结

XML文件使用 1webconfig webconfing有默认有缓存依赖&#xff0c;修改&#xff0c;则服务重启。JS三级联动XML处理导出。2asp.net站点地图3Soap WEB服务传输数据&#xff0c;Soap是有特殊数据的XML。本质是表单提交&#xff0c;Web服务response数据&#xff0c;表单要知道服…

c语言之计算两个数的大数

# include<stdio.h> //编译预处理指令 int main(){ //定义主函数int max (int x,int y);int a,b ,m; scanf("%d,%d",&a,&b);m max( a, b);printf("max is %d \n ",m);return 0 ;} int max(int x,int y){int c ;if (x>y){cx;}else{c y…

redis数据批量导入导出

针对工作中可能用到 将某台服务器中的redis数据 导出然后导入到新的服务器中&#xff0c;一种方法是redis-dump工具&#xff0c;但是 他需要安装ruby环境&#xff0c;安装环境的过程中还可能出现意想不到的错误。所以不得不选用其他方法了。一下 是几点思路 供参考。在此谢谢我…

(JAVA)多线程之wait()与notify()

/*** author Alina* date 2021年12月22日 12:17 上午**/ class Student{String name;String sex;boolean flag false;} class Product implements Runnable{Student s ;Product(Student s ){this.s s;}public void run(){int x 0;//通过奇数偶数进行赋值while(true){synchro…

ASP.NET中数据有效性校验的方法

主要用Regex的IsMatch方法&#xff0c;在BusinessRule层进行校验数据的有效性&#xff0c;并将校验的方法作为BusinessRule层基类的一部分。 在WebUI层现实提示信息。 using System;using System.Data;using System.Text.RegularExPRessions;namespace Education.BusinessRules…

(Java) 线程池

线程池&#xff1a;1.出现版本&#xff1a;JDK1.52.包&#xff1a;java.util.concurrent3.Executors类 -->工厂类1.三个静态方法&#xff1a;static ExecutorService newCachedThreadPool() 创建新的线程池对象Creates a thread pool that creates new threads as needed, …

openSUSE 13.1 Milestone 2 发布

openSUSE 13.1 发布第二个里程碑版本&#xff0c;下载地址&#xff1a; openSUSE-Factory-KDE-Live-Build0504-x86_64.iso (917MB, MD5, torrent)openSUSE-Factory-GNOME-Live-Build0504-x86_64.iso (889MB, MD5, torrent).更新的软件包括&#xff1a; Automake 1.13.2, Evolut…

UDP发字节,接收字节

public class MenuBarDemo {public static void main(String[] args) throws Exception{byte[] bytes "你好".getBytes(StandardCharsets.UTF_8);DatagramPacket dp new DatagramPacket(bytes,bytes.length, InetAddress.getByName("127.0.0.1"),10000);…