在WordPress中,手动添加标签是一项繁琐的工作,尤其是在处理大量文章时。幸运的是,我们可以通过自定义代码来实现自动添加标签的功能。本文将详细介绍如何在发布文章时自动添加已存在的标签,这些标签可以从文章标题或内容中提取。
步骤概览
- 备份当前主题:在进行任何代码修改之前,务必备份当前使用的主题,以防止意外情况发生。
- 编辑
functions.php
文件:将自定义代码添加到主题的functions.php
文件中。 - 选择提取标签的来源:可以选择从文章标题或内容中提取标签。
详细步骤
1. 备份当前主题
在开始之前,确保备份当前使用的主题。这可以通过FTP客户端下载整个主题文件夹,或者使用WordPress插件(如UpdraftPlus)进行备份。
2. 编辑 functions.php
文件
- 登录到WordPress后台。
- 导航到「外观」→「主题文件编辑器」。
- 在右侧的文件列表中找到并点击
functions.php
文件。 - 将以下代码添加到
functions.php
文件的末尾。
提取文章内容中的标签
// 自动给文章添加tag(内容版)
add_action('save_post', 'auto_add_tags');
function auto_add_tags() {
// 获取所有标签
$tags = get_tags(array('hide_empty' => false));
// 获取当前文章ID
$post_id = get_the_ID();
// 获取文章内容
$post_content = get_post($post_id)->post_content;
if ($tags) {
foreach ($tags as $tag) {
// 如果文章内容中包含已存在的标签,自动添加这些标签
if (strpos($post_content, $tag->name) !== false) {
wp_set_post_tags($post_id, $tag->name, true);
}
}
}
}
提取文章标题中的标签
如果你想从文章标题中提取标签,只需将上述代码中的 $post_content
替换为 $post_title
,代码如下:
// 自动给文章添加tag(标题版)
add_action('save_post', 'auto_add_tags');
function auto_add_tags() {
// 获取所有标签
$tags = get_tags(array('hide_empty' => false));
// 获取当前文章ID
$post_id = get_the_ID();
// 获取文章标题
$post_title = get_post($post_id)->post_title;
if ($tags) {
foreach ($tags as $tag) {
// 如果文章标题中包含已存在的标签,自动添加这些标签
if (strpos($post_title, $tag->name) !== false) {
wp_set_post_tags($post_id, $tag->name, true);
}
}
}
}
3. 保存并测试
- 保存
functions.php
文件。 - 创建一篇新文章,输入标题和内容,然后发布。
- 检查文章的标签,确保已存在的标签已被自动添加。
注意事项
- 备份:在修改
functions.php
文件之前,务必备份当前主题。 - 性能:如果文章数量较多,建议在生产环境中谨慎使用此功能,以免影响性能。
- 测试:在正式环境中使用前,先在测试环境中进行充分测试,确保代码正常工作。
进一步优化
- 缓存标签:可以考虑将所有标签缓存到一个数组中,以减少每次调用
get_tags
的开销。 - 日志记录:可以在代码中添加日志记录,以便调试和监控。
通过以上步骤,你可以轻松地让WordPress在发布文章时自动添加已存在的标签,从而提高工作效率。希望这篇文章对你有所帮助!如果有任何问题或需要进一步的帮助,请随时联系我。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容