WordPress 投稿コンテンツからすべてのリンクを削除する

Last Updated:2024年04月15日| | コメントを残す

AdSense 申請時に本文にリンクがある場合 AdSense 承認がうまくいかないと主張する方がいます。しかし、 AdSense 承認前にブログにURLを含めるとマイナスになるという規定はないそうです。ここでは、次のGoogleフォーラムの記事の質問と回答を参照してください。

SEO(検索エンジン最適化)の観点から、適切な内部リンクと外部リンクが役に立ちます。 Yoast SEO、 ランクMath SEO プラグインのSEO分析ツールは、内部リンクと外部リンクを使用するかどうかをチェックし、存在しない場合はリンクを追加することをお勧めします。

それにもかかわらず、すべてのリンクを削除したい場合、または何らかの理由で外部リンクをすべて削除したい場合は、以下に示すコードを試してみてください。

WordPress 投稿コンテンツからすべてのリンクを削除する

WordPress 投稿コンテンツからすべてのリンクを削除したい場合 WordPress 開発者フォーラムに記載されている以下のコードを使用できます。

// WordPress 포스트 콘텐츠에서 모든 링크 제거하기
// Removes all links from the content of WordPress posts.

add_filter( 'the_content', 'misha_remove_all_a' );
function misha_remove_all_a( $content ){

    return preg_replace('#<a.*?>(.*?)</a>#is', '\1', $content);

}

上記のコードを チャイルドテーマの関数ファイル(functions.php)に追加してください。これを行うには、FTP / SFTPに接続できる必要があります。

WordPressからすべての外部リンクを削除する

WordPress ポストコンテンツからすべての外部リンクを削除したい場合は、次のコードをチャイルドテーマの関数ファイルに追加できます。

// This code snippet is designed to filter out external links from WordPress post content.
// WordPress 포스트 콘텐츠에서 외부 링크 제거하기

add_filter('the_content', 'remove_external_links', 10);

function remove_external_links($content) {
    // 사이트의 주소를 가져옵니다.
    $site_url = wp_parse_url(site_url());
    
    return preg_replace_callback('#<a[^>]+href="([^"]+)"[^>]*>(.*?)</a>#i', function($matches) use ($site_url) {
        // 링크의 URL을 분석합니다.
        $link_url = wp_parse_url($matches[1]);

        // 링크가 외부 사이트인지 확인합니다.
        if (!empty($link_url['host']) && $link_url['host'] !== $site_url['host']) {
            // 링크 텍스트만 반환하여 외부 링크를 제거합니다.
            return $matches[2];
        }

        // 내부 링크는 그대로 둡니다.
        return $matches[0];
    }, $content);
}

JavaScriptを使用して外部リンクを削除することもできます。次のコード WPコード などのプラグインを使用してフッターセクションに追加できます。

<script>
document.addEventListener('DOMContentLoaded', (event) => {
    const siteHostname = window.location.hostname;

    document.querySelectorAll('article.post a').forEach(link => {
        const linkHostname = new URL(link.href).hostname;
        if (linkHostname !== siteHostname) {
            // This removes the <a> tag but keeps the text intact
            link.outerHTML = link.innerHTML;
        }
    });
});

</script>

GeneratePress テーマやKadenceテーマを使用している場合は、テーマが提供するフックを使用して、フッタセクションにコードを簡単に追加できます。

上記のコードは、削除するとリンクが元に戻ります。

参照


コメントを残す

コメント