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