=== KennyDTC Smart Publisher ===
Contributors: KennyDTC
Tags: content import, scheduled posts, image sideload, Yoast SEO, bulk publishing
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.1.1
License: GPLv2 or later

把其他项目生成的文章、图片和 SEO 信息快速导入 WordPress，在人工审核后定时或批量错峰发布。

== 主要功能 ==

* 单篇或多篇复制粘贴，支持富文本、HTML 和常用 Markdown。
* 上传 DOCX、XLSX、JSON；一次可选多个文件。
* DOCX 读取第一个“标题 1”作为标题，并提取内嵌图片。
* 下载远程图片或内嵌图片到媒体库，替换正文网址。
* 自动生成图片文件名、ALT、Caption，并设置首图为特色图片。
* 自动把新静态图片转换并压缩为 WebP，可限制最大宽度和调整质量。
* 自动使用语义 Figure 排版图片，并把单独上传的图片均匀放入正文段落。
* 优先按分类名称精确匹配网站现有分类，无法匹配时按正文推荐。
* 自动生成 SEO Title、Meta Description、Focus Keyphrase、Slug 和摘要。
* 同步写入 Yoast SEO 的 Title、Description 与 Focus Keyphrase 字段。
* 每篇指定日期时间，或按起始时间、文章间隔、每日上限和时间窗口错峰排期。
* 重复文章拦截、图片处理提示、审核队列和发布队列。
* 清理 Word/Google Docs 多余 HTML：样式、无用 class/id、空标签、注释和连续空格。
* 自动生成“首页 > 分类 > 文章”面包屑与 H2/H3 可折叠文章目录。
* 按关键词搜索正文并插入自定义锚文本 URL，支持次数、Follow/Nofollow/Sponsored 和新窗口规则。

== 安装 ==

1. WordPress 后台进入“插件 > 安装插件 > 上传插件”。
2. 上传 kenny-dtc-smart-publisher.zip 并启用。
3. 左侧菜单进入“智能发布 > 插件设置”检查默认规则。
4. 进入“智能导入”粘贴文章或上传文件。

== 推荐流程 ==

智能导入 -> 内容审核 -> 编辑分类/TDK -> 指定或批量排期 -> 发布队列。

插件不会在导入时直接公开文章。所有内容先保存为草稿，确认后才加入 WordPress 的定时发布队列。

== 批量粘贴格式 ==

多篇文章之间使用下列分隔符：

===ARTICLE===

如果没有分隔符，批量模式也会尝试按多个 H1 或 Markdown # 标题拆分。

可选的文章头信息示例：

---
Title: Article title
Category: Existing category name
SEO Title:
Meta Description:
Focus Keyphrase:
Publish At: 2026-09-01 09:30:00
---

正文从这里开始。

== XLSX 与 JSON 字段 ==

title, content, images, categories, scheduled_at, seo_title, meta_description, focus_keyphrase, slug, excerpt

XLSX 第一行必须是字段名，每一行是一篇文章。images 和 categories 有多个值时可用逗号、分号或竖线分隔。JSON 可直接使用文章数组，或使用 {"articles": [...]}。

== 服务器要求 ==

* PHP 7.4 或更高版本。
* WordPress 6.2 或更高版本。
* DOCX/XLSX 解析需要 PHP ZipArchive。
* 图片和 DOCX 解析需要 DOM；XLSX 需要 SimpleXML。
* PHP 必须允许 WordPress 写入 uploads 和临时目录。

== 定时发布提示 ==

插件使用 WordPress 原生 future 状态和发布事件。低访问量网站仅依赖 WP-Cron 时可能延迟。正式站建议在服务器控制面板中每 5 分钟调用一次 wp-cron.php，或配置系统 Cron 后禁用页面访问触发的 WP-Cron。

== 图片与 WebP ==

新导入的 JPG、PNG、WebP、AVIF 静态图片会在进入媒体库前通过 WordPress 图片编辑器转换为 WebP。默认质量为 82，最大宽度为 1920px。动态 GIF 为防止丢失动画而保留原格式；服务器不支持 WebP 时也会安全保留原图。

== HTML 清理 ==

导入及正式排期前都会清除 Word、WPS 和 Google Docs 常见的脏代码，包括内联 style、无用 class/id、HTML 注释、空标签、连续不换行空格和多余 DIV/SPAN/FONT 包装。链接 href、图片 src/alt、表格结构及插件功能所需语义属性会保留。

== 面包屑与文章目录 ==

文章前端默认显示简洁面包屑和可折叠目录。目录自动读取 H2/H3，生成唯一锚点，不把导航 HTML 永久写入正文，因此分类、文章标题或固定链接变化后仍会自动更新。可在插件设置中分别关闭。

== 锚文本规则 ==

进入“智能发布 > 锚文本规则”，为每条规则填写搜索关键词、显示锚文本、目标 URL、每篇次数和链接属性。插件不会修改 H1-H6、代码块或已经存在的链接。建议每条规则每篇最多 1 次，并设置每篇总链接上限。

== TDK 说明 ==

Google 已基本不使用传统 Meta Keywords。插件把“K”写入 Yoast Focus Keyphrase，不输出无效的 meta keywords 标签。自动生成采用本地规则，不会把文章发送给外部 AI 服务；发布前应人工审核。

== 数据安全 ==

仅具备编辑他人文章权限的用户可以导入和排期。所有写操作带 WordPress nonce 校验，远程图片地址通过 WordPress 安全 URL 校验。卸载插件不会删除已经导入的文章或媒体。

插件不会统计安装域名，不会收集 WordPress 管理员邮箱，不会上传文章内容，也不会发送隐藏追踪请求。插件设置页中的 KennyDTC 官方资源链接仅在 WordPress 管理后台显示；只有管理员主动点击时才会访问官网，并携带用于识别插件来源的 UTM 参数。

== 官方资源 ==

* 下载页：https://kennydtc.com/wordpress-smart-publisher/
* 使用教程：https://kennydtc.com/wordpress-smart-publisher/#installation
* 更新日志：https://kennydtc.com/wordpress-smart-publisher/#changelog
* 问题反馈：https://kennydtc.com/contact/

== Changelog ==

= 1.1.1 - 2026-08-27 =

* 在插件设置页增加官方下载、教程、更新日志、问题反馈、SEO 内容规划和外链方案入口。
* 明确数据隐私说明：不统计安装域名、不收集管理员邮箱、不上传文章内容、不发送隐藏追踪请求。
* 所有官网入口仅显示在 WordPress 管理后台，并统一增加来源识别参数。
* 加强 DOCX/XLSX XML 解析与内嵌图片的大小限制，降低异常文件造成的资源风险。

= 1.1.0 - 2026-08-27 =

* 增加图片 Figure/Caption 自动排版与 WebP 转换压缩。
* 增加 Word/Docs HTML 清理、文章面包屑、H2/H3 可折叠目录。
* 增加关键词锚文本规则及 Follow、Nofollow、Sponsored 选项。
