地球历史上的今天发生了哪些事情?
地球历史上的今天发生了哪些事情?
地球历史上的今天发生了哪些事情?
有这样的源码可以在服务器上面运行吗?
PHP,JS等网页HTML代码最好。
可以将“地球历史上的今天”功能直接部署到WordPress服务器,只需通过自定义页面模板+自定义文章类型+简单PHP/JS代码即可实现。以下是具体步骤:
一、核心思路
利用WordPress的自定义文章类型(Custom Post Type, CPT)存储历史事件数据(替代之前的硬编码),通过自定义页面模板渲染前端页面,并调用WordPress内置的WP_Query
获取数据。无需复杂插件,兼容主流WordPress版本(5.0+)。
二、部署步骤
1. 准备工作
- 确保WordPress已安装并运行(服务器需支持PHP 7.0+、MySQL 5.6+)。
- 登录WordPress后台,进入 设置→固定链接,选择“文章名”或“自定义结构”(确保URL友好)。
2. 创建自定义文章类型(存储历史事件)
通过代码或插件(如“Custom Post Type UI”)创建自定义文章类型,用于管理历史事件数据。这里以手动添加代码为例(更灵活):
步骤:
- 进入WordPress后台,进入 外观→主题编辑器。
- 选择当前使用的主题(如Twenty Twenty-Four),点击 主题文件→添加新文件。
- 新建文件
custom-post-type-history.php
,粘贴以下代码:
<?php
/**
* 注册自定义文章类型:历史事件
*/
function create_history_post_type() {
$args = [
'public' => true,
'label' => '历史事件',
'menu_icon' => 'dashicons-calendar-alt',
'supports' => ['title', 'editor', 'thumbnail', 'excerpt'],
'has_archive' => true,
'rewrite' => ['slug' => 'history-event'], // 自定义文章URL别名
'show_in_rest' => true, // 允许Gutenberg编辑器编辑
];
register_post_type('history_event', $args);
}
add_action('init', 'create_history_post_type');
- 保存文件并刷新后台,即可在左侧菜单看到 “历史事件” 文章类型(需清除缓存)。
3. 添加历史事件数据
通过WordPress后台添加历史事件(无需代码):
- 进入 历史事件→添加新文章。
- 填写标题(如“林白首次单人跨大西洋飞行”)、内容(详细描述)、特色图像(可选),点击 发布。
4. 创建自定义页面模板(渲染前端)
创建一个WordPress页面模板,用于展示历史事件列表。
步骤:
- 在主题目录(如
wp-content/themes/twentytwentyfour/
)新建文件page-history-today.php
。 - 粘贴以下代码(包含前端HTML+PHP数据获取+JS动态渲染):
<?php
/**
* 模板名称:历史上的今天
*/
get_header(); ?>
<div class="container">
<h1 class="page-title">🌍 地球历史上的今天(<?php echo date('Y年m月d日'); ?>)</h1>
<div id="events-container" class="events-grid">
<?php
// 查询今日历史事件(假设事件日期存储在自定义字段'date'中)
$today = date('Y-m-d');
$args = [
'post_type' => 'history_event',
'posts_per_page' => -1,
'meta_query' => [
[
'key' => 'date',
'value' => $today,
'compare' => '=',
]
]
];
$events_query = new WP_Query($args);
if ($events_query->have_posts()) :
while ($events_query->have_posts()) : $events_query->the_post();
$date = get_the_date('Y年m月d日'); // 获取事件日期
$title = get_the_title();
$content = apply_filters('the_excerpt', get_the_excerpt()); // 内容摘要
$image = get_the_post_thumbnail_url(get_the_ID(), 'medium'); // 特色图像
?>
<div class="event-card">
<h2><?php echo esc_html($title); ?></h2>
<p class="date"><?php echo esc_html($date); ?></p>
<p class="content"><?php echo esc_html($content); ?></p>
<?php if ($image) : ?>
<img src="<?php echo esc_url($image); ?>" alt="<?php echo esc_attr($title); ?>" class="event-image">
<?php endif; ?>
</div>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p>今日暂无历史事件记录。</p>
<?php endif; ?>
</div>
</div>
<?php get_footer(); ?>
5. 关联自定义页面模板
将新创建的模板关联到WordPress页面:
- 进入 页面→添加新页面。
- 标题填写“历史上的今天”,在 模板 下拉菜单中选择 “历史上的今天”(即刚创建的
page-history-today.php
)。 - 点击 发布,访问该页面即可看到动态渲染的历史事件。
6. 优化样式(可选)
在主题的style.css
中添加以下CSS(或通过 外观→自定义→额外CSS 添加),优化页面显示:
/* 历史事件卡片样式 */
.events-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 20px;
margin-top: 30px;
}
.event-card {
background: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.event-card:hover {
transform: translateY(-5px);
}
.event-card h2 {
color: #2c3e50;
margin-top: 0;
}
.event-card .date {
color: #7f8c8d;
font-size: 0.9em;
margin: 10px 0;
}
.event-card .content {
color: #34495e;
margin: 15px 0;
}
.event-card .event-image {
width: 100%;
height: 200px;
object-fit: cover;
border-radius: 4px;
margin-top: 10px;
}
@media (max-width: 768px) {
.events-grid {
grid-template-columns: 1fr;
}
}
三、扩展与优化
1. 自动获取历史事件数据(替代手动添加)
若需自动填充历史事件(如从外部API获取),可通过自定义函数+定时任务实现:
- 使用
wp_schedule_event
设置每日定时任务,调用外部API(如维基百科“On This Day”接口)获取当日事件。 - 将获取的数据通过
wp_insert_post
插入到自定义文章类型history_event
中。
2. 添加搜索功能
在页面中添加搜索框,允许用户搜索历史事件:
- 在
page-history-today.php
中添加搜索表单:<form method="get" action="<?php echo home_url(); ?>"> <input type="text" name="s" placeholder="搜索历史事件..."> <input type="submit" value="搜索"> </form>
- 修改
WP_Query
参数,支持搜索:$search = isset($_GET['s']) ? sanitize_text_field($_GET['s']) : ''; $args['s'] = $search; // 添加搜索关键词
3. 多语言支持
若需支持英文等多语言,可通过WPML插件或WordPress内置的pll__()
函数实现:
- 在事件内容中使用
pll__()
:$content = pll__(get_the_excerpt()); // 输出翻译后的内容
四、总结
通过以上步骤,可将“地球历史上的今天”功能快速部署到WordPress服务器,核心优势是:
- 无需复杂插件:利用WordPress原生功能(自定义文章类型、页面模板)实现。
- 易于维护:历史事件通过后台管理,无需修改代码。
- 扩展性强:支持自动数据填充、搜索、多语言等功能扩展。
部署完成后,用户可通过http://你的WordPress域名/历史上的今天/
访问页面,查看当日历史事件。
【EACO代码重构e文明】 代码e即财富,
EACO地球E连接地球和宇宙的一切,e连接地球和宇宙万物。
e&EACO(Earth’s Best Coin),
EACO is Earth’s best friend;
$e=$eaco(DqfoyZH96RnvZusSp3Cdncjpyp3C74ZmJzGhjmHnDHRH).
计算劳动价值,量化地球资源;总量13.5亿个;