旅行日志自定义模块

2026-04-04 资源 53 复制

旅行日志自定义模块是一个 WordPress 插件,用于创建和管理两种自定义内容类型:
- 游记(Travel):适合发布旅行见闻、游记攻略等内容
- 揽件日志(Journal插件提供了完整的列表页和内容页模板,开箱即用,同时也支持主题模板覆盖。

主要特性

- ✅ 自定义文章类型(游记、揽件日志)
- ✅ 自定义分类法(系列、标签)
- ✅ 内置精美模板(列表页+内容页)
- ✅ 特色图片支持
- ✅ 后台自定义列显示
- ✅ 主题模板覆盖支持
- ✅ Gutenberg 编辑器支持
- ✅ REST API 支持

视频源:https://videos.pexels.com/video-files/18023827/180...

安装与激活

方法一:通过 WordPress 后台安装

1. 下载插件 ZIP 文件
2. 进入 WordPress 后台 → 插件 → 安装插件
3. 点击"上传插件",选择 ZIP 文件
4. 点击"立即安装"
5. 安装完成后点击"激活"

视频源:https://videos.pexels.com/video-files/29327048/126...

方法二:通过 FTP 安装

1. 解压插件文件夹
2. 上传到 /wp-content/plugins/ 目录
3. 进入 WordPress 后台 → 插件
4. 找到"旅行日志自定义模块"并点击"激活"

 激活后的文件结构

/wp-content/plugins/你的插件文件夹/
├── 插件主文件.php
└── templates/
├── archive-travel.php 游记列表页模板
├── single-travel.php 游记详情页模板
├── archive-journal.php 日志列表页模板
└── single-journal.php 日志详情页模板

功能概述

1. 游记(Travel)
- URL 结构:https://你的域名/travels/(列表页)
- 单页 URL:https://你的域名/travels/文章别名/
- 支持功能:标题、编辑器、特色图片、摘要、评论、自定义字段
- 分类法:系列(层级分类)

2. 揽件日志(Journal)
- URL 结构:https://你的域名/journals/(列表页)
- 单页 URL:https://你的域名/journals/文章别名/
- 支持功能:标题、编辑器、特色图片、摘要、评论、自定义字段
- 分类法:标签(非层级分类)

---

快速开始

第一步:发布第一篇游记

1. 进入 WordPress 后台
2. 左侧菜单找到"游记" → "写新游记"
3. 输入标题和内容
4. 设置特色图片(可选)
5. 添加系列分类(可选)
6. 点击"发布"

第二步:查看效果

- 访问 https://你的域名/travels/ 查看游记列表
- 点击任意文章标题查看详情页

 第三步:发布日志

1. 左侧菜单找到"揽件日志" → "写新日志"
2. 输入标题和内容
3. 添加标签(可选)
4. 点击"发布"

---

详细使用指南

一、管理文章

1. 添加系列(游记专用)

方法一:在文章编辑页面添加
- 编辑游记文章
- 右侧找到"系列"模块
- 输入新系列名称或选择已有系列
- 点击"添加"

方法二:在系列管理页面添加
- 后台菜单 → 游记 → 系列
- 输入系列名称和别名
- 可选择父级系列(支持层级)
- 点击"添加新系列"

2. 管理标签(日志专用)

- 后台菜单 → 揽件日志 → 标签
- 可以添加、编辑、删除标签
- 标签支持分组显示

3. 快速编辑

在文章列表页面:
- 鼠标悬停在文章标题上
- 点击"快速编辑"
- 可以快速修改标题、系列/标签等信息

4. 批量操作

- 勾选多篇文章
- 选择"批量操作"
- 可以批量移动分类、删除等

二、后台列表页功能

游记和日志列表页都增加了两个自定义列:

列名 说明
------ ------
封面图 显示文章的特色图片缩略图
系列/标签 显示文章所属的系列或标签

三、URL 结构说明

固定链接模式(推荐)

在 设置 → 固定链接 中选择"文章名"模式:

游记列表页: https://你的域名/travels/
游记详情页: https://你的域名/travels/文章别名/
系列归档: https://你的域名/travel-series/系列别名/

日志列表页: https://你的域名/journals/
日志详情页: https://你的域名/journals/文章别名/
标签归档: https://你的域名/journal-tag/标签别名/

朴素链接模式

如果不开启固定链接:

游记列表页: https://你的域名/?posttype=travel
游记详情页: https://你的域名/?p=文章ID
系列归档: https://你的域名/?taxonomy=travelseries&term=系列别名

四、模板系统

模板加载优先级

插件会按以下顺序查找模板:

1. 主题目录中的模板(优先级最高)
2. 插件内置模板(优先级次之)
3. WordPress 默认模板(最后)

主题模板覆盖

如果你想自定义模板样式,可以在主题中创建以下文件:

你的主题文件夹/
├── archive-travel.php 覆盖游记列表页
├── single-travel.php 覆盖游记详情页
├── archive-journal.php 覆盖日志列表页
└── single-journal.php 覆盖日志详情页

模板定制

内置模板样式说明

游记列表页(archive-travel.php)
- 网格布局(响应式)
- 卡片式设计
- 显示特色图片、标题、日期、作者、摘要、系列
- 鼠标悬停有动画效果

游记详情页(single-travel.php)
- 单栏布局
- 大标题样式
- 特色图片全宽显示
- 支持评论
- 上一篇/下一篇导航

日志列表页(archive-journal.php)
- 列表布局
- 简洁卡片设计
- 显示标题、日期、作者、摘要、标签

日志详情页(single-journal.php)
- 简洁阅读布局
- 支持评论
- 标签显示
- 上一篇/下一篇导航

自定义CSS

你可以通过主题的 style.css 覆盖默认样式:

/ 修改游记列表页容器宽度 /
.travel-archive-container {
max-width: 1400px;
}

/ 修改卡片样式 /
.travel-card {
background: f9f9f9;
border-radius: 8px;
}

/ 修改标题颜色 /
.article-title {
color: 333;
}

添加自定义字段

在模板中添加自定义字段:

<?php
// 获取自定义字段
$location = getpostmeta(gettheID(), 'travellocation', true);
$duration = getpostmeta(gettheID(), 'travelduration', true);
?>

<div class="travel-info">
<p>地点:<?php echo eschtml($location); ?></p>
<p>时长:<?php echo eschtml($duration); ?>天</p>
</div>

---

常见问题

1. 访问 travels 或 journals 页面出现 404 错误?

解决方法:
- 进入 WordPress 后台 → 设置 → 固定链接
- 不做任何修改,直接点击"保存更改"
- 这将刷新重写规则

2. 模板不显示怎么办?

可能原因及解决方法:
1. 插件未激活 → 检查插件是否已激活
2. 权限问题 → 确保 templates 文件夹有读取权限
3. 主题冲突 → 暂时切换到默认主题测试

3. 如何修改系列/标签的 URL?

修改 registertaxonomies() 方法中的 rewrite 参数:

'rewrite' => array('slug' => 'your-custom-slug')

修改后需要重新保存固定链接。

4. 如何禁用某个文章类型?

在 registerposttypes() 方法中注释掉对应的注册代码即可。

5. 如何修改每页显示的文章数量?

在主题的 functions.php 中添加:

function customtravelpostsperpage($query) {
if (!isadmin() && $query->isposttypearchive('travel')) {
$query->set('postsperpage', 12);
}
if (!isadmin() && $query->isposttypearchive('journal')) {
$query->set('postsperpage', 20);
}
}
addaction('pregetposts', 'customtravelpostsperpage');

6. 支持古腾堡编辑器吗?

支持。插件已启用 showinrest => true,完全兼容古腾堡编辑器。

7. 如何添加自定义字段到 REST API?

function registertravelmeta() {
registermeta('post', 'travellocation', array(
'showinrest' => true,
'single' => true,
'type' => 'string',
));
}
addaction('init', 'registertravelmeta');

8. 如何添加新的文章类型?

复制 registerposttypes() 方法中的代码,修改参数即可。

---

更新日志

Version 1.1 (2024-01-XX)
- 优化模板加载逻辑
- 修复 flushrewriterules 性能问题
- 添加模板文件存在检查
- 优化分类链接显示

Version 1.0 (初始版本)
- 初始发布
- 支持游记和日志两种文章类型
- 内置精美模板
- 支持系列和标签分类
- 后台自定义列显示

---

技术支持

如有问题或建议,请通过以下方式联系:

- 在 WordPress 支持论坛发帖
- 查看插件目录下的 README 文件
- 检查 WordPress 调试日志

下载

附录

数据库表结构

插件使用 WordPress 默认的数据表:
- wpposts - 存储文章数据
- wppostmeta - 存储自定义字段
- wptermrelationships - 存储分类关系
- wptermtaxonomy - 存储分类法
- wpterms - 存储术语

钩子参考

文章类型钩子
- registerposttypeargs - 修改文章类型参数
- travelseriesargs - 修改系列分类参数

模板钩子
- singletemplate - 修改单页模板
- archivetemplate - 修改归档模板

查询钩子
- pregetposts - 修改文章查询

函数参考

// 获取游记列表
$travels = getposts(array(
'posttype' => 'travel',
'postsperpage' => 10,
));

// 获取系列列表
$series = getterms(array(
'taxonomy' => 'travelseries',
'hideempty' => false,
));

// 获取日志标签
$tags = getterms(array(
'taxonomy' => 'journaltag',
'hide_empty' => false,
));

文档结束

WordPress 查看全部
第 2 / 2 篇
Home 影视 菜单 Time 音悦
×

注册

×

登录