准备工作
确保已安装 WordPress 并启用了适合的主题:以我的主题为例,适用于大多数 WordPress 主题。
获取 Memos 的 RSS 订阅地址:比如我的链接为 https://memos.duanxiansen.com/u/1/rss.xml,根据你的 Memos 实际 RSS 链接替换。
编写函数获取 Memos 最新动态
需要编写一个函数,使用 WordPress 的 wp_remote_get () 函数从 RSS 链接获取数据,并解析出最新的一条动态。
首先,打开 WordPress 主题目录中的 functions.php
文件,添加以下代码:
// 获取 Memos 最新一条动态并显示
function display_latest_memo() {
// 通过 wp_remote_get 获取 RSS 数据
$response = wp_remote_get('https://memos.duanxiansen.com/u/1/rss.xml'); // 替换为你的 Memos RSS 网址
if (is_wp_error($response)) {
return '无法获取 Memos 数据';
}
// 获取响应的主体内容
$body = wp_remote_retrieve_body($response);
// 将 RSS 数据解析为 XML
$data = simplexml_load_string($body);
// 检查返回的数据是否为空
if (empty($data) || !isset($data->channel->item[0])) {
return '没有找到最新的 Memos 动态';
}
// 获取最新一条动态
$latest_memo = $data->channel->item[0];
// 将 RSS 中的时间转换为 WordPress 时区时间
$rss_date = (string)$latest_memo->pubDate; // 获取 RSS 中的发布时间
// 创建 DateTime 对象并设置为 RSS 的时间
$date = new DateTime($rss_date);
// 将时间转换为 WordPress 时区
$date->setTimezone(new DateTimeZone(get_option('timezone_string')));
// 格式化时间为 Y-m-d H:i:s 格式
$formatted_date = $date->format('Y-m-d H:i:s');
// 输出最新动态的标题、时间和链接
$output = '<div class="latest-memo memos-center">';
$output .= '<h3>最新动态:' . esc_html($latest_memo->title) . '</h3>';
$output .= '<p>时间:' . esc_html($formatted_date) . '</p>';
$output .= '<p><a href="' . esc_url($latest_memo->link) . '" target="_blank">点击查看详情</a></p>';
$output .= '</div>';
return $output;
}
// 创建一个短代码来显示 Memos 最新动态
add_shortcode('latest_memo', 'display_latest_memo');
在首页显示最新动态
接下来,要让 Memos 最新动态只显示在首页文章的最上方。为此,需要修改 header.php
或者 index.php
文件,在首页判断条件下调用定义的短代码。
- 打开主题目录下的
header.php
文件,找到适当位置(如头部模板部分)插入以下代码:
<!-- 在首页显示最新的 Memos 动态 -->
<?php if ( is_home() || is_front_page() ) : ?>
<div class="memos-latest">
<?php echo do_shortcode('
最新动态:#博客 好了好了,中午可以成型了,只不过怎么跟其他博友显示在首页不一��...
时间:2024-10-17 15:45:38
#博客 好了好了,中午可以成型了,只不过怎么跟其他博友显示在首页不一样,哈哈,不过这样子也行呢,有自己独特的风格嘛。
'); ?>
</div>
<?php endif; ?>
is_home()
和is_front_page()
:这两个函数确保只有在首页显示动态,而其他页面不会显示。is_home()
用于判断博客文章列表页,is_front_page()
用于判断自定义的前端首页。
样式调整(居中显示)
将以下 CSS 代码添加到你的主题 style.css
文件中:
.memos-latest {
text-align: center; /* 水平居中内容 */
margin: 20px auto; /* 上下外边距并居中容器 */
padding: 10px;
background-color: #f5f5f5; /* 背景颜色 */
max-width: 600px; /* 设置容器最大宽度 */
border-radius: 10px; /* 圆角效果 */
}
.memos-latest h3 {
font-size: 1.5em;
}
.memos-latest p {
font-size: 1.2em;
}
.memos-latest a {
text-decoration: none;
color: #0073aa; /* 链接颜色 */
}
结尾
就这样吧,不完美的就是不能直接评论,需要点进去到 memos 页面,继续完善吧。
本站资源均为作者提供和网友推荐收集整理而来,仅供学习和研究使用,请在下载后24小时内删除,谢谢合作!
THE END