WordPress文章自动打标签Tag自动内链教程

fb0505dca9acdd6


前言

之前小编一直都在为想文章的标签而烦恼,懒得自己打tag标签,所以在网上找到了一个很好用而且是纯代码,可以自动给文章打上相关联的标签,而且还会自动内链!!真的灰常好用!

教程

WordPress纯代码实现自动添加文章标签的实现方法:只需要将以下代码添加到主题的functions.php文件最后即可。

/* 自动为文章添加标签 By auto-add-tags插件 */
add_action('save_post', 'auto_add_tags');
function auto_add_tags(){
$tags = get_tags( array('hide_empty' => false) );
$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 );
}
}
}

以上代码的功能就是在我们发布,保存,更新文章时,自动检测文章中的内容,是否出现曾经使用过的标签。如果出现过就会自动为文章添加这些标签。

WordPress纯代码实现自动为文章内的标签添加内链的方法:同样是将以下代码添加到主题的functions.php文件最后即可。

//WordPress 文章标签自动内链 add_filter('the_content', 'fanly_auto_tags_link'); function fanly_auto_tags_link($content) { $tags = get_the_tags(); //获取当前文章的标签 if($tags){ foreach ($tags as $tag) { $link = get_tag_link($tag->term_id); //生成标签链接 $tag_name = preg_quote($tag->name, '/'); //转义标签名 //提前保护<a>、<img>、<code>标签内的内容 $content = preg_replace_callback('/(<a[^>]*>)(.*?)(</a>)/si', function($matches) use ($tag_name) { return str_replace($tag_name, '%&&&&&%', $matches[0]); }, $content); $content = preg_replace_callback('/(<img[^>]*)(.*?)(' . $tag_name . ')(.*?)(>)/si', function($matches) use ($tag_name) { return str_replace($tag_name, '%&&&&&%', $matches[0]); }, $content); $content = preg_replace_callback('/(<code[^>]*>)(.*?)(</code>)/si', function($matches) use ($tag_name) { return str_replace($tag_name, '%&&&&&%', $matches[0]); }, $content); //替换内容中的标签文本为链接,限制替换次数为 1 $content = preg_replace('/' . $tag_name . '/iu', '<a href="' . $link . '">' . $tag->name . '</a>', $content, 1); //恢复被保护的标签内的内容 $content = str_replace('%&&&&&%', $tag_name, $content); } } return $content;

 

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享