以下是一个在 WordPress 中自动根据文章标题生成长尾标签的示例代码,该代码需要添加到主题文件夹下的 `functions.php` 文件中。
function generate_long_tail_tags($post_id) {
// 只对文章进行处理
if(get_post_type($post_id) != 'post') return;
// 获取文章标题和已有标签
$title = get_the_title($post_id);
$tags = wp_get_post_tags($post_id);
// 如果已有标签数量少于 5 个,则自动生成标签
if(count($tags) < 5) {
// 分词器:将标题分隔成单词数组
$words = preg_split('/[^\p{L}0-9]+/u', $title, -1, PREG_SPLIT_NO_EMPTY);
// 过滤器:去掉长度小于 2 的单词,并将单词转为小写
$words = array_filter(array_map('strtolower', $words), function($word) {
return mb_strlen($word, 'UTF-8') >= 2;
});
// 统计每个单词出现的次数
$counts = array_count_values($words);
// 对单词按照出现次数排序,取前 5 个作为标签
arsort($counts);
$new_tags = array_keys(array_slice($counts, 0, 5));
// 将新标签添加到文章中
wp_set_object_terms($post_id, array_merge(wp_get_post_tags($post_id), $new_tags), 'post_tag');
}
}
add_action('save_post', 'generate_long_tail_tags');
以上代码使用了 WordPress 的 `save_post` 钩子,当文章保存时,会自动调用该函数。函数中首先获取文章标题和已有标签。然后利用分词器将标题分隔成单词数组,过滤器去掉长度小于 2 的单词,并统计每个单词出现的次数。最后按照出现次数排序,取前 5 个作为新标签,并将新标签添加到文章中。
需要注意的是,这种自动生成标签的方法不一定适用于所有场景,可能会导致标签重复或者不准确。因此在使用之前应该仔细评估其适用性,并根据实际情况进行修改。
声明:本站所收录作品、热点评论、图片等信息部分来源互联网,目的只是为了系统归纳学习和传递资讯。内容不代表本网站的观点和立场。请读者仅作参考,并请自行核实相关内容。本站所有图文由于未联系到知识产权人或未发现有关知识产权的登记,所有作品版权归原创作者所有,根据《信息网络传播权保护条例》,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理!