从wordpress数据库生成Rss


Generate Rss from wordpress database

我在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方法代码?

在数据库中,我可以找到字段,如内容,标题,但我找不到描述字段和排序逻辑的帖子。

 $this->_blogAdapter = new Zend_Db_Adapter_Pdo_Mysql(array(
    'host' => 'localhost',
    'username' => 'root',
    'password' => 'password',
    'dbname' => 'database'
 ));

我可以连接到我的博客,但我不知道我怎么能把所有的字段,逻辑排序和其他。有解决办法吗?

In controller:

$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;
    }
}