我在wordpress和网站上有博客,在一台机器上使用wordpress RSS。 我的想法是连接到wordpress数据库,并在我的网站代码中为我的网站生成Rss。
有任何想法如何做到这一点?
在我发现的wordpress代码中
header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
$more = 1;
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
<rss version="0.92">
<channel>
<title><?php bloginfo_rss('name'); wp_title_rss(); ?></title>
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss('description') ?></description>
<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
<docs>http://backend.userland.com/rss092</docs>
<language><?php echo get_option('rss_language'); ?></language>
<?php do_action('rss_head'); ?>
<?php while (have_posts()) : the_post(); ?>
<item>
<title><?php the_title_rss(); ?></title>
<description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
<link><?php the_permalink_rss() ?></link>
<?php do_action('rss_item'); ?>
</item>
<?php endwhile; ?>
</channel>
</rss>
但我不能只在我网站的代码中复制该代码。我在哪里可以找到bloginfo_rss方法代码?
在数据库中,我可以找到内容,标题等字段,但我无法找到描述字段并对该帖子排序logick。
$this->_blogAdapter = new Zend_Db_Adapter_Pdo_Mysql(array(
'host' => 'localhost',
'username' => 'root',
'password' => 'password',
'dbname' => 'database'
));
我可以连接到我的博客,但我不知道我怎么能把所有领域,logick和其他。有任何决心吗?
答案 0 :(得分:0)
在控制器中:
$blog = new Model_Blog();
$post = '?lang=' . $lang;
$this->view->entries = $blog->getItems($lang);
模特:
protected function _createAdapter ()
{
$this->_blogAdapter = new Zend_Db_Adapter_Pdo_Mysql(array(
'host' => 'xxx',
'username' => 'xxx',
'password' => 'xxx',
'dbname' => 'xxx'
));
$this->_blogAdapter->query('SET NAMES UTF8');
}
protected function _getPosts ($limit = 0)
{
$posts = $this->_blogAdapter->select()
->from(array ('p'=>'xxx_posts'))
->where ('post_status = ?','publish')
->where ('post_type = ?','post')
->order ('post_date DESC')
->limit ($limit)
->query()
->fetchAll();
return $posts;
}
public function getItems ($lang ='ru', $need = 3)
{
$posts=$this->_getPosts();
$items=array();
foreach ($posts as $key=>$post) {
$items [$key] ['link'] = $post ['guid'].'&lang='.$lang;
$items [$key] ['description'] = $this->_getText($post ['post_content'], $lang);
$items [$key] ['title'] = $this->_getTitle($post ['post_title'], $lang);
}
$validItems = array_filter($items,array("self", "_valid"));
if (count($validItems) > $need) {
return array_slice($validItems, 0, $need);
} else {
return $validItems;
}
}