内部リンクだろうととにかく新しい記事で開いてほしい。だって、リンク元の記事に戻ってきてほしいもん。

という場合は、function.phpに下記のコードを追記するだけで可能。

// functions.php

function internal_links_new_tab() {
    ?>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const contentArea = document.querySelector('article');

            if (contentArea) {
                const links = contentArea.querySelectorAll('a:not(#toc_container a)'); // toc_container内のリンクは除外

                links.forEach(link => {
                    const href = link.getAttribute('href');

                    // リンクが内部リンクの場合のみ
                    if (href && (href.startsWith(window.location.origin) || href.startsWith('/'))) {
                        link.setAttribute('target', '_blank');
                        link.setAttribute('rel', 'noopener noreferrer');
                    }
                });
            }
        });
    </script>
    <?php
}
add_action('wp_footer', 'internal_links_new_tab');

6行目のarticleの部分だけ自分の環境に置き換える必要がある。

const contentArea = document.querySelector('自分の環境のタグ');

tocというプラグインで目次を自動生成している場合を考慮し、目次は新しいタブで開かないようにノーカンにする処理も入れている。

調べ方

F12を押して開発者モードを起動。

↑このアイコンを押して、記事のエリアを開始部分を左の表示画面から選ぶと特定できる。

Conoha Wing

爆速で表示されるこのブログのサーバーはConoha Wingです。
詳細は下記!!

おすすめの記事