如何在非WordPress站点中输出WordPress提要?

时间:2014-03-05 作者:ST\'\'

我正在尝试从我的博客中获取内容。假设是example.com.

我在我的非WordPress网站中使用了下面的php脚本,试图从WordPress博客中获取内容。

$content = file_get_contents(\'http://blog.example.com/feed/\');
$clean = str_replace( \']]>\', \'\', str_replace(\'<![CDATA[\', \'\', $content) );

$feed = simplexml_load_string( $clean );

for($i = 0; $i < 4; $i++) {                   
  echo \'<div style="width: 100%;float:left;margin-bottom:30px; font-size: 16px;">\';
  echo \'<div style="width:100%;float:left;margin-bottom:30px; font-weight:bold;">\';
  echo \'<a href="\' . $feed->channel->item[$i]->link . \'" style="color:#f6a236;">\';
  echo $feed->channel->item[$i]->title . \'</a></div>\'; 
  echo \'<span style="color:#444645;">\'.$feed->channel->item[$i]->description.\'</span>\';
  echo \'</div>\';
}
但是,此代码不起作用。有人可以告诉我为什么以及如何在非WordPress站点中输出WordPress提要?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

从非WordPress站点使用WordPress提要的最简单方法是依赖于库:SimplePie 这与WordPress本身使用的相同。

你可以从它的网站下载,还有一个缩小版。

通常情况下,您将其下载为zip包,将其解压缩到一个文件夹中,并命名为simplepie, 并将非WordPress放在应该输出提要的文件的同一文件夹中。

之后,使用它非常简单,在要输出提要的文件中,只需执行以下操作:

<?php
// following lines go before open html tag
require_once \'simplepie/autoloader.php\';
$feed = new SimplePie();
$feed->set_feed_url( \'http://blog.example.com/feed/\' );
$success = $feed->init();
$feed->handle_content_type();
?>

<html lang="en-US">
<head>
<title>SimplePie Demo</title>
<link rel="stylesheet" href="yourstylesheet.css" type="text/css" media="screen">
</head>
<body>

<?php
if ($success) {
  foreach( $feed->get_items() as $item ) {

    echo \'<h4><a href="\' . $item->get_permalink() . \'">\';
    echo $item->get_title() .\'</a></h4>\';
    echo \'<p>\' . $item->get_date(\'j M Y, g:i a\') . \'</p>\';
    echo \'<p>\' . $item->get_content() . \'</p>\';

  }
} else {
   echo \'Error on parsing feed\';
}
?>

</body>
</html>
当然,您可以随意定制标记,mine只是一个简单的示例。

考虑到SimplePie具有强大的功能来处理类别和标签、图像和其他媒体、缓存、清理等。

看见documentationAPI docs 还可以看看demo 文件夹,它包含有用的示例。

结束

相关推荐

Custom Feed URLs

我正在为我的一个帖子类型创建一个自定义提要,并允许用户设置该提要的名称。http://www.mysite.com/feed/userdefinedname现在,我还想让用户不仅可以显示该CPT中的所有帖子,还可以按类别过滤它们。目前情况是这样的:http://www.mysite.com/feed/testcategory然而,如果我能将其结构如下,我会非常喜欢它:http://www.mysite.com/feed/userdefinedname/testcategory这可能吗?下面是生成这些基于类