我的演示:
https://cmsblog.cn/memos.html
代码是GPT写的
新建一个页面,插入以下代码。
CSS需要根据自己的主题来调整。
<?php
// 分页参数
// 分页参数
$items_per_page = 10; // 每页显示的动态数量
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // 当前页码,默认为 1
// 获取 RSS 数据
$rss_url = 'https://memos.cmsblog.cn/u/157104945@qq.com/rss.xml'; // 替换为你的 Memos RSS 网址
$rss_content = file_get_contents($rss_url);
if ($rss_content === FALSE) {
echo '无法获取 Memos 数据';
} else {
// 解析 RSS 数据
$xml = simplexml_load_string($rss_content);
if ($xml === FALSE) {
echo '解析 RSS 数据失败';
} else {
// 获取动态条目总数
$total_items = count($xml->channel->item);
// 计算总页数
$total_pages = ceil($total_items / $items_per_page);
// 检查页码是否有效
if ($page < 1) $page = 1;
if ($page > $total_pages) $page = $total_pages;
// 计算当前页的起始索引和结束索引
$start_index = ($page - 1) * $items_per_page;
$end_index = $start_index + $items_per_page;
// 遍历 RSS feed,显示当前页的动态
$count = 0;
foreach ($xml->channel->item as $item) {
if ($count >= $start_index && $count < $end_index) {
$title = (string)$item->title;
$link = (string)$item->link;
$description = (string)$item->description;
$pubDate = (string)$item->pubDate;
// 转换时间(假设 RSS feed 中的时间是服务器时间,或者根据需要调整时区)
// 这里假设 RSS feed 中的时间已经是正确的时区时间,所以直接格式化输出
// 如果需要转换时区,请使用 DateTime 类或 strtotime + date 函数进行转换
$pubDateFormatted = date('Y-m-d H:i:s', strtotime($pubDate)); // 格式化时间字符串
// 截取描述内容并添加链接
$excerpt = mb_substr($description, 0, 300);
if (mb_strlen($description) > 300) {
$excerpt .= '... <a href="' . $link . '" target="_blank">阅读更多</a>';
} else {
$excerpt .= ' <a href="' . $link . '" target="_blank">查看原文</a>';
}
// 输出动态内容
echo '<div class="memo-item">';
echo '<h3><a href="' . $link . '" target="_blank">' . $title . '</a></h3>';
echo '<p>' . $excerpt . '</p>';
echo '<p>时间:' . $pubDateFormatted . '</p>'; // 使用格式化后的时间
echo '</div>';
}
$count++;
}
// 输出分页导航
echo '<div class="pagination">';
if ($page > 1) {
echo '<a href="?page=' . ($page - 1) . '">上一页</a> ';
}
for ($i = 1; $i <= $total_pages; $i++) {
if ($i == $page) {
echo '<span>' . $i . '</span> ';
} else {
echo '<a href="?page=' . $i . '">' . $i . '</a> ';
}
}
if ($page < $total_pages) {
echo '<a href="?page=' . ($page + 1) . '">下一页</a>';
}
echo '</div>';
}
}
?>
评论 (0)