所以我做了这个插件。
严格来说,因为没有安装到wordpress默认的插件目录,这不能算是一个插件。为什么这样选择呢?因为我认为,百度新闻协议和rss2.0等等协议是一个类别,按照分类的原理,他们应该合并在一起。所我改了三个文件,使得可以自动更新新闻以让百度抓取。希望新版的wordpress能够支持这个协议。
示例:http://www.xufei.info/?feed=baidunews (许飞音符网)
1.修改wp-feed.php
在case选择中加上baidunews,见代码。
if (empty($doing_rss)) {
$doing_rss = 1;
require(dirname(__FILE__) . ‘/wp-blog-header.php’);
}
// Remove the pad, if present.
$feed = preg_replace(’/^_+/’, ”, $feed);
if ($feed == ” || $feed == ‘feed’) {
$feed = ‘rss2′;
}
if ( is_single() || ($withcomments == 1) ) {
require(ABSPATH . ‘wp-commentsrss2.php’);
} else {
switch ($feed) {
case ‘atom’:
require(ABSPATH . ‘wp-atom.php’);
break;
case ‘rdf’:
require(ABSPATH . ‘wp-rdf.php’);
break;
case ‘rss’:
require(ABSPATH . ‘wp-rss.php’);
break;
case ‘rss2′:
require(ABSPATH . ‘wp-rss2.php’);
break;
case ‘comments-rss2′:
require(ABSPATH . ‘wp-commentsrss2.php’);
break;
case ‘baidunews’:
require(ABSPATH . ‘wp-baidunews.php’);
break;
}
}
?>
2.修改wp-rss2.php,另存为wp-baidunews.php,见代码。
if (empty($wp)) {
require_once(’wp-config.php’);
wp(’feed=rss2′);
}
header(’Content-type: text/xml; charset=’ . get_settings(’blog_charset’), true);
$more = 1;
?>
echo ”.get_settings(’blog_charset’).’”?’.'>’; ?>
bloginfo_rss(’url’) ?>
webmaster@hongxiaowan.com /*将电子邮件换成你自己的*/
720 /*设定被百度新闻蜘蛛抓取的时间间隔,我的是720分钟*/
do_action(’rss2_head’); ?>
$items_count = 0; if ($posts) { foreach ($posts as $post) { start_wp(); ?>
permalink_single_rss() ?>
if (get_settings(’rss_use_excerpt’)) : ?>
the_title_rss() ?>
else : ?>
the_title_rss() ?>
if ( strlen( $post->post_content ) > 0 ) : ?>
baidunews(”, 0, ”) ?>
else : ?>
baidunews(”, 0, ”) ?>
endif; ?>
endif; ?>
the_category_rss() ?>
the_author() ?>
bloginfo_rss(’name’); ?>
rss_enclosure(); ?>
do_action(’rss2_item’); ?>
echo mysql2date(’D, d M Y H:i:s +0000′, get_post_time(’Y-m-d H:i:s’, true), false); ?>
$items_count++; if (($items_count == get_settings(’posts_per_rss’)) && empty($m)) { break; } } } ?>
3.修改wp-includes目录中的template-functions-post.php文件,贴上这个函数。
$baidunews = get_the_content($more_link_text, $stripteaser, $more_file);
$baidunews = apply_filters(’the_content’, $baidunews);
$baidunews = str_replace(’]]>’, ‘]]>’, $baidunews);
$baidunews = str_replace(’&’, ‘&’,$baidunews);
$baidunews = str_replace(”‘”,”'”,$baidunews);
$baidunews = str_replace(’”‘,”"”,$baidunews);
$baidunews = str_replace(”>”,”>”,$baidunews);
$baidunews = str_replace(”",”<”,$baidunews);
echo $baidunews;
}
原文地址:http://www.hongxiaowan.com/2006/11/14/the-wordpress-plug-in-of-baidu-news-protocol-chinese/
作者: 52ordpress
本博客关注wordpress,博客营销等。版权所有,转载时必须以链接形式注明作者和原始出处及本声明。
