REC
Typecho Joe主题 RSS方式呈现“新闻早报”
02博客网

Typecho Joe主题 RSS方式呈现“新闻早报”

暗之星
2025-01-26发布 /正在检测是否收录...
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也就那几种了。

    效果图预览

    5863f76f4b306672583f500ff1690b4e.png

这里页面名可自定义,虽然叫新闻早报,当然也可以改成其他的🧑‍💻

新闻页面创建

我们先到主题目录里创建一个文件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&nbsp;by&nbsp;<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新闻源推荐

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
OωO
取消 登录评论
SSL