Per praticità, ho preferito impostare tutti i link esterni (e solo gli esterni) con target=_”blank”.
Farlo manualmente però, oltre ad essere noioso è in certi casi persino impossibile (come nella directory creata con Gist.md)
Ho quindi creato questo mu-plugin che con poche righe di codice mi risolve il tutto e ho pensato di condividerlo con voi.
<?php
/*
Plugin Name: External Links in New Tab
Plugin URI: https://salvatorenoschese.it/mu-plugin-external-links-in-new-tab
Description: Opens external links in a new tab.
Version: 0.1
Author: Salvatore Noschese
Author URI: https://salvatorenoschese.it
*/
defined("ABSPATH") || die("Access denied.");
add_action('wp_footer', 'custom_external_links_script');
function custom_external_links_script() {
?>
<script>
(function () {
var targetBlankPluginLinks = document.querySelectorAll('a[href^="https://"]');
targetBlankPluginLinks.forEach(function (targetBlankPluginLink) {
// Check if the link's domain is different from the current page's domain
if (targetBlankPluginLink.hostname !== window.location.hostname) {
targetBlankPluginLink.setAttribute('target', '_blank');
}
});
})();
</script>
<?php
}
Basta scaricare questo file e metterlo nella vostra directory mu-plugins e tutti i link esterni nel vostro blog otterranno (via JavaScript) il target=”_blank”.
NB: se avete già un modo per inserire del codice nel vostro footer (o se non usate WordPress), vi basterà semplicemente copiare il blocco
<script>
(function () {
var targetBlankPluginLinks = document.querySelectorAll('a[href^="https://"]');
targetBlankPluginLinks.forEach(function (targetBlankPluginLink) {
// Check if the link's domain is different from the current page's domain
if (targetBlankPluginLink.hostname !== window.location.hostname) {
targetBlankPluginLink.setAttribute('target', '_blank');
}
});
})();
</script>
e inserirlo manualmente.
Spero possa tornare utile! ☺️