WordPress 文章自动添加标签功能实现
在撰写和发布博客文章时,为文章添加恰当的标签(TAG)是优化 WordPress 网站结构、提升用户体验和 SEO 效果的重要环节。然而,如果每篇文章都需要手动为关键词添加标签,无疑会增加内容管理的工作量。
本文将介绍一种通过代码自动为 WordPress 文章添加标签的方法,只需将一段简单的 PHP 函数添加到主题文件中即可实现。
实现自动添加标签的代码
将以下代码添加到您当前使用的 WordPress 主题的 functions.php 文件末尾。建议在修改前备份原文件。
/**
* 自动为文章添加已存在的标签
* 当文章内容中出现已创建的标签名称时,自动将该标签关联到文章
*/
add_action('save_post', 'wukong_auto_add_tags');
function wukong_auto_add_tags($post_id) {
// 防止无限循环和自动保存时触发
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (wp_is_post_revision($post_id)) {
return;
}
// 获取所有已存在的标签
$tags = get_tags(array('hide_empty' => false));
if (!$tags) {
return;
}
// 获取当前文章内容
$post = get_post($post_id);
$post_content = $post->post_content . ' ' . $post->post_title; // 同时检查标题
$tags_to_add = array();
foreach ($tags as $tag) {
// 如果文章内容或标题中包含标签名称,则准备添加
if (stripos($post_content, $tag->name) !== false) {
$tags_to_add[] = $tag->name;
}
}
// 如果找到匹配的标签,则将其添加到文章
if (!empty($tags_to_add)) {
wp_set_post_tags($post_id, $tags_to_add, true); // true 表示追加,不覆盖原有标签
}
}
代码功能说明与注意事项
- 触发时机:函数挂载在
save_post动作上,在文章保存或更新时自动执行。 - 匹配逻辑:代码会检查文章正文和标题中是否出现了网站已创建的标签名称(不区分大小写)。如果出现,则自动将该标签关联到当前文章。
- 追加模式:使用
wp_set_post_tags函数时,第三个参数设为true,表示新标签会追加到文章已有的标签之后,不会覆盖。 - 性能考虑:如果网站标签数量非常多,此函数可能会轻微影响文章发布速度。建议定期清理无用标签以保持效率。
- 使用建议:此方法适用于内容与标签关联性较强的网站。对于新站或标签体系尚未完善的站点,建议先手动建立核心标签库。
进阶优化:自动为标签添加内链
实现自动添加标签后,您可能还希望这些标签能在文章内容中自动生成指向标签归档页的内链,以进一步提升站内链接结构和 SEO。
这需要另一段独立的函数来实现关键词自动链接功能。其核心思路是:在文章输出前,遍历指定的关键词(如标签名),并将其替换为指向对应标签页面的超链接。
由于实现自动内链涉及内容过滤钩子(如 the_content)和更复杂的替换逻辑(需避免重复替换、在 HTML 标签内替换等),建议参考专门的插件或更完整的代码教程进行部署,以确保网站的稳定性和性能。
通过结合“自动添加标签”与“标签自动内链”两项优化,您可以大幅提升 WordPress 网站的内容关联性和 SEO 基础,让内容管理更加高效智能。