AI摘要:本文介绍了如何使用RSS方式在Typecho Joe主题中实现“新闻早报”功能。通过简单的RSS引用,无需受API资源限制,且可扩展性强。文章详细说明了RSS的优势,并提供了创建新闻页面的代码示例和RSS新闻源推荐。
前言
前段时间 UP主 在网上冲浪,无意中找到了一篇关于《简单而完整的 PHP RSS 阅读器》的文章。经过小小的实验之后大为惊喜!这短短的20行代码也正好是我最近一直在找的。
因为看到别人的博客都有 每天60秒读懂世界新闻早报 功能,感觉还是挺新鲜的😏,于是我把找到的代码在Joe主题上进行了测试,效果非常不错!于是决定分享出来给大家测试,此方法使用了简单的RSS引用方式,不必再受api资源的限制,而且可扩展性也非常强。
RSS的优势
为何选用 RSS 方式更加比 api 具有优势呢?
- rss订阅源丰富,更新节奏快,api更新不稳定,我之前的方法就经常中午才更新,这还能叫早报么
- api大部分都有调用次数显示,比如前段时间看到的一篇文章,Joe主题首页显示新闻早报API,可每日更新(功能可扩展) 中使用的ALAPI,每日仅1000次调用次数
rss的源不仅仅是新闻,更加丰富的订阅来源,而api也就那几种了。
效果图预览
这里页面名可自定义,虽然叫新闻早报,当然也可以改成其他的🧑💻
新闻页面创建
我们先到主题目录里创建一个文件newspaper.php
打开我们输入一下代码
<?php
/**
* 新闻导读
*
* @package custom
*
**/
?>
<?php
if (!defined('__TYPECHO_ROOT_DIR__')) {
http_response_code(404);
exit;
}
$this->need('module/single/pjax.php');
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<?php
$this->need('module/head.php');
$this->need('module/single/prism.php');
?>
<script src="<?= joe\cdn('clipboard.js/2.0.11/clipboard.min.js') ?>" data-turbolinks-permanent></script>
<script src="<?= joe\theme_url('assets/js/joe.single.js'); ?>"></script>
</head>
<body>
<?php $this->need('module/header.php'); ?>
<div id="Joe">
<div class="joe_container">
<div class="joe_main">
<div class="joe_detail" data-cid="<?php echo $this->cid ?>">
<?php $this->need('module/single/batten.php'); ?>
<?php $this->need('module/single/article.php'); ?>
<?php
$rss = simplexml_load_file('https://www.chinanews.com.cn/rss/scroll-news.xml');
$title = $rss->channel->title;
?>
<title><?php echo $title; ?></title>
<h1 style="text-align:center;">
02博客 - 新闻导读
</h1>
<?php
echo "<article class='joe_detail__article'><ol>";
foreach ($rss->channel->item as $item) {
echo "<li>";
echo "<h6><a style='color: var(--minor); display: block; margin: 10px;' target='_blank' href='" . $item->link . "'>" . $item->title . "</a></h6>";
echo "<div>" . $item->description . "</div><br>";
echo "</li>";
}
echo "</ol></article>";
?>
<p style="text-align:right;">
内容来源:<?php echo $title; ?><br>
Made by <a href="/" target="_blank">02博客</a>
</p>
<?php $this->need('module/single/handle.php'); ?>
<?php $this->need('module/single/copyright.php'); ?>
</div>
<?php $this->need('module/single/comment.php'); ?>
</div>
<?php joe\isPc() ? $this->need('module/aside.php') : null ?>
</div>
<?php $this->need('module/bottom.php'); ?>
</div>
<?php $this->need('module/footer.php') ?>
</body>
</html>
代码中的https://www.chinanews.com.cn/rss/scroll-news.xml
是我们选择的rss订阅地址
这里 UP主 用的是中国新闻网 – 即时新闻,当然你也可以换成别的,比如文章最后推荐的几个源都非常不错,你也可以自行百度。
在后台新建页面,模板选择 新闻导读 ,地址栏可以填写 news 当然自己diy其他链接也是可以的,然后发布查看效果。
RSS新闻源推荐
- 如果你还不清楚去哪找RSS源 https://www.zhihu.com/question/19580096
- 如果你想找更多的源 https://docs.rsshub.app/
- 奇客Solidot https://www.solidot.org/index.rss
- 36氪 https://36kr.com/feed
- 月光博客 https://www.williamlong.info/rss.xml
- 中国新闻网 https://www.chinanews.com.cn/rss/index.shtml