TOP > 技術ブログ > 記事内リンクを別タブで開くようにする方法
投稿日: 2022.04.30 更新日: 2022.04.30

記事内リンクを別タブで開くようにする方法

以前クラウドワークスで、記事内のリンクを別タブに開くようにして欲しいというご依頼があり、応募したところ、ありがたいことに仕事を任せていただきました。

本記事では、今回実装した内容について書いていきます。

functions.phpに記述する内容

結論のソースコードです。

add_filter( 'the_content', 'add_external_content', 1 );

function add_external_content( $content ) {
    preg_match_all( '/<a[^>]+?href[^>]+?>/i', $content, $link_array );

    $my_url = preg_quote( rtrim( get_bloginfo('url'), '/' ) . '/', '/' );

    foreach( array_unique( $link_array[0] ) as $link ) {
        $replaced = $link;

        if( !preg_match( '/href=[\'|\"]?\s?' . $my_url . '[^>]+?[\'|\"]/i', $link ) ) {

            if( !preg_match( '/.+?target\s?=[\'|\"]?\s?_?blank.+?/i', $link ) ) {
                $replaced = str_replace( '>', ' target="_blank">', $replaced );
            }

            $content = str_replace( $link, $replaced, $content );
        }
    }
    return $content;
}

これで、目次を含む内部リンク以外のリンクを外部リンクに置き換えることができます。

参考サイト

こちらのサイトを参考にしました。

今回のご依頼内容

こちらで確認できます。

メッセージの文面が明るく、素晴らしいご依頼者の方でした。

ページ
最上部へ