简易网站地图(WordPress 插件)
一款适用于 WordPress 的现代化、高性能 HTML 网站地图生成器。
Easy Sitemap 允许您使用强大的短代码系统,为页面、文章和自定义文章类型(CPTs)显示完全可自定义的网站地图。它采用现代化的 OOP 架构构建,具备智能缓存、PSR-4 自动加载功能,并为开发者提供了丰富的钩子。

✨ 主要特性
面向网站建设者
- 通用自定义文章类型支持: 自动检测并支持所有公开文章类型(包括 WooCommerce 产品、作品集等)。
- 可视化短代码生成器: 管理面板内置交互式构建器,无需记忆属性即可生成代码。
- 层级布局: 显示页面的父子关系以及文章的类别分组。
- 响应式网格: 通过 CSS 网格支持多列布局(最多 6 列)。
- 安全自定义样式: 直接在插件设置中添加自定义 CSS,无需修改主题。
⚡ 性能与技术
- 智能缓存: 利用WordPress瞬态缓存为访客缓存输出,同时为登录用户保持内容动态更新。
- 优化查询: 使用
no_found_rows和高效的数据库调用来最小化开销。 - 现代架构: 采用清晰的面向对象设计,并支持PSR-4自动加载。
- SEO友好: 生成语义化的结构化HTML标记。
要求
- WordPress: 5.0或更高版本
- PHP: 7.2或更高版本
- MySQL: 5.6或更高版本
安装
- 下载: 提取插件文件。
- 上传: 将
easy-sitemap文件夹移动到您服务器的/wp-content/plugins/目录。 - 激活: 转到 WordPress 管理后台 → 插件 并激活 Easy Sitemap。
- 配置: 前往 设置 → Easy Sitemap 以调整全局设置或使用短代码生成器。
短代码用法
要显示网站地图,请将短代码
[easy_sitemap]
插入到任何文章、页面或小工具中。
短代码生成器
推荐: 无需手动输入属性,请前往 设置 → Easy Sitemap。内置的生成器允许您通过用户界面切换选项,并自动将生成的短代码复制到您的剪贴板。
手动属性参考
您可以使用以下属性自定义输出:
1. 内容与过滤
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
post_type |
string | post |
要显示的文章类型(例如:page、product、portfolio)。 |
limit |
int | 1000 |
要显示的最大项目数量。 |
include |
string | null | 要包含的ID的逗号分隔列表(例如:10,15,22)。 |
exclude |
string | null | 要排除的ID的逗号分隔列表。 |
category |
string | null | 按分类别名筛选(例如:news,updates)。 |
tag |
string | null | 按标签别名筛选。 |
author |
int | null | 按作者ID筛选。 |
date_from |
string | null | 开始日期(格式:YYYY-MM-DD)。 |
date_to |
string | null | 结束日期(格式:YYYY-MM-DD)。 |
2. 高级分类法筛选
要按自定义分类法(例如,WooCommerce 产品分类)进行筛选:
taxonomy:分类法别名(例如product_cat)。term:特定术语别名(例如accessories)。- 注意:这两个属性必须同时使用。
3. 排序
| 属性 | 选项 | 默认值 |
|---|---|---|
orderby |
date, title, modified, menu_order, rand, ID |
date |
order |
DESC (降序), ASC (升序) |
DESC |
4. 显示与布局
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show_dates |
布尔型 | 0 |
在标题旁显示发布日期。 |
show_excerpts |
布尔型 | 0 |
显示文章摘要。 |
show_images |
布尔型 | 0 |
显示特色图像(缩略图)。 |
hierarchical |
布尔型 | 0 |
显示父/子结构(页面)或分类分组(文章)。 |
columns |
整型 | 1 |
将列表分栏显示(最大:6)。 |
class |
字符串 | 空 | 向包装器添加自定义 CSS 类。 |
5. 缓存(按实例)
| 属性 | 描述 |
|---|---|
cache |
设置为 0 可为特定短代码禁用缓存(覆盖全局设置)。 |
cache_expiry |
持续时间,单位为秒(默认值:3600)。 |
示例
标准博客列表
[easy_sitemap post_type="post" show_dates="1" category="news"]
WooCommerce 产品网格
在3列网格中显示12个带图片的电子产品。
[easy_sitemap post_type="product" taxonomy="product_cat" term="electronics" show_images="1" columns="3" limit="12"]
分层页面
非常适合用于目录或网站索引。
[easy_sitemap post_type="page" hierarchical="1" orderby="menu_order" order="ASC"]
按日期范围筛选作品集
[easy_sitemap post_type="portfolio" date_from="2023-01-01" date_to="2023-12-31"]
⚙️ 配置与性能
智能缓存
该插件采用智能缓存系统,确保即使生成大型站点地图,您的网站依然能保持快速响应。
- 全局设置:可在设置 → Easy Sitemap中配置缓存。
- 仅访客模式:缓存仅应用于未登录用户(访客)。已登录的管理员始终查看实时数据。
- 瞬态缓存:使用原生的WordPress瞬态缓存。
- 自动清除:插件停用时缓存将自动清除。
自定义样式
您可以通过插件设置中的自定义CSS框来设置站点地图的样式。
常用选择器:
/* 容器 */
.easy-sitemap { margin-bottom: 30px; }
/* 列表项 */
.easy-sitemap-item { border-bottom: 1px solid #eee; }
/* 图片 */
.easy-sitemap-image { border-radius: 4px; max-width: 80px; }
/* 日期 */
.easy-sitemap-date { font-size: 0.85em; color: #888; }
开发者文档
架构
该插件遵循严格的 PSR-4 标准,并将 Admin、Frontend 和 Core 逻辑按关注点分离。
classes/
├── EasySitemap/
│ ├── Admin/ # 设置与用户界面
│ ├── Frontend/ # 短代码引擎与资源文件
│ ├── Autoloader.php
│ └── Plugin.php # 引导程序
钩子与过滤器
使用以下过滤器以编程方式修改行为:
1. 修改查询参数
在获取站点地图之前,调整
WP_Query
参数。
add_filter( 'easy_sitemap_query_args', function( $query_args, $atts ) {
// 示例:强制所有站点地图排除特定分类ID
$query_args['category__not_in'] = [ 99 ];
return $query_args;
}, 10, 2 );
2. 修改输出 HTML
在最终渲染前过滤输出的 HTML。
add_filter( 'easy_sitemap_output', function( $output, $atts, $posts ) {
return '<div class="my-wrapper">' . $output . '</div>';
}, 10, 3 );
3. 更改图片尺寸
更改源图片尺寸(默认为 ‘thumbnail’)。
add_filter( 'easy_sitemap_image_size', function( $size ) {
return 'medium';
} );
4. 添加支持的帖子类型
如果自动检测失败,手动注入对复杂 CPT(自定义帖子类型)的支持。
add_filter( 'easy_sitemap_supported_post_types', function( $post_types ) {
$post_types['my_custom_type'] = 'My Custom Type';
return $post_types;
} );
故障排除
- 图片不显示? 请确保存在
show_images="1"属性,并且您的主题支持文章缩略图。 - 更改未生效? 如果启用了缓存,请等待过期时间(默认为1小时)或保存插件设置页面以手动刷新缓存。
- 短代码生成器问题? 请确保您的浏览器允许剪贴板访问。如果”复制”按钮失效,请从生成器框中手动复制文本。
许可证与鸣谢
许可证: GNU通用公共许可证 v2.0 或更高版本。
怀着 ❤️ 为 WordPress 社区打造。