在写文章的时候经常需要添加外链,WordPress的链接是默认当前窗口打开的,我不想外链在当前窗口打开,想在浏览器新标签页打开,可以在编辑文章添加链接的时候手动设置连接属性为在新窗口打开,但是链接多了,或是经常添加链接的话,手动设置就比较麻烦了,我们可以通过在functions.php中添加代码实现文章链接自动设为新窗口打开。
首先打开主题中的functions.php文件,添加如下代码:
//文章页面链接自动设置为新窗口打开
function auto_add_target_blank_on_save($content) {
// 正则匹配文章内容中的所有<a>标签,并自动添加target="_blank"
$content = preg_replace('/<a(.*?)>/', '<a\1 target="_blank">', $content);
return $content;
}
// 钩住文章保存动作
add_filter('wp_insert_post_data', function($data) {
// 只处理文章类型为'post'或'page'的内容
if (in_array($data['post_type'], ['post', 'page'])) {
$data['post_content'] = auto_add_target_blank_on_save($data['post_content']);
}
return $data;
});
如果你还想给外链添加nofollow属性的话,可以写成下面这行代码这样:
$content = preg_replace('/<a(.*?)>/', '<a\1 target="_blank" rel="noopener nofollow">', $content);
这样以后在每次发布新文章的时候,文章中链接会自动添加target=”_blank”属性,让外链自动在新窗口打开。