Tired of going to the Gutenberg editor and saying open in a different window every time you add an external link? Now you don’t have to manually this. Let’s add some code and automatically open new links in a new window.
If you know a code a little bit you will understand we will add target=”_blank” programmatically.
The code below is for open links in a new window. But please consider, all your external links open in a new window, not only your post.
You should add the following code into your functions.php.
// Adding target="_blank" to external links
function amc_add_targetblank_to_external_links($content) {
return preg_replace_callback('/<a[^>]+/', 'amc_add_blank_to_nofollow_callback', $content);
}
function amc_add_blank_to_nofollow_callback($matches) {
$link = $matches[0];
$site_link = get_bloginfo('url');
$site_link_parsed = parse_url(get_bloginfo('url'));
$site_link_host = $site_link_parsed['host'];
$link = preg_replace("%(href=\"https?:\/\/(?!$site_link_host|www.$site_link_host))%i", 'target="blank" $1', $link);
return $link;
}
add_filter('the_content', 'amc_add_targetblank_to_external_links');
If you have any questions feel free to ask me in the comments.