之前分享了 WordPress 标签如何实现批量自定义链接,但是想着可能还需要使用到 WordPress 标签自动内链才能完成闭环的反链建设工作,毕竟很多的 WordPress 主题和站点并没有直接展现文章标签的习惯,并且将链接做在内容中也才更有 SEO 优化的意义,所以重新进行了一个增强的代码版本,结合了标签自动内链的部分代码。
使用以下代码就能自定义将指定的关键词文本增加链接,可以是内链也可以是外链,子凡我开发的目的就是为了增加网站外链,就像我提及到泪雪网和垒阅网这两个网站就会自动的增加链接,当然还可以根据自己的需要不断的增加和删除自定义文本链接,可以是任意的关键词都行,不区分大小写都可以成功匹配。
// WordPress 文章自定义关键词链接
add_filter('the_content', 'fanly_auto_links');
function fanly_auto_links($content) {
// 定义链接数组
$links = array(
'51福利网' => 'https://www.51yhyh.com',
'一号优惠' => 'https://www.51yhyh.com',
'福利网' => 'https://www.51yhyh.com',
// 添加其对应链接
);
// 保护标签内容,以免替换
$content = preg_replace_callback('/(<(?:a|code)b[^>]*>.*?</(?:a|code)>|<imgb[^>]*/?>)/si', function($matches) {
return '%&&&' . base64_encode($matches[0]) . '&&&%';
}, $content);
// 替换关键词为链接,不区分大小写
foreach ($links as $names => $link) {
$keywords = explode('|', $names);
foreach ($keywords as $name) {
// 替换内容中的标签文本为链接,不区分大小写
$content = preg_replace('/(b' . $name . 'b)/iu', '<a href="' . $link . '" target="_blank" rel="noopener">$1</a>', $content, 1);
}
}
// 恢复被保护的标签内容
$content = preg_replace_callback('/%&&&(.*?)&&&%/si', function($matches) {
return base64_decode($matches[1]);
}, $content);
return $content;
}
直接将以上代码添加到当前使用主题的 functions.php 文件合适位置即可,在 $links 数组中添加需要替换为链接的关键词文本和对应的链接就行,代码会在替换标签文本为链接之前,先保护文章内容中已有的 a、img、code 标签内的内容,如果你的网站还有其他标签内容需要保护可以看着增加,使用了正则表达式的 preg_replace_callback 函数来实现保护,在替换完成后恢复被保护的标签内容,确保文章的 HTML 结构不会被破坏。