WordPress の記事の内容に自動的に内部リンクを追加することができます。例えば、記事のタグへの参照などです。これにより、ウェブサイトの SEO 効果が向上するだけでなく、ユーザーエクスペリエンスも向上し、ユーザーが関連コンテンツをより簡単に見つけることができます。実際、WordPress の記事に自動的にタグ内リンクを追加する方法についての記事は多くあり、ほとんどが同じコードであり、私自身も常に使用しています。ちょうど今日、ウェブサイト内リンクに対して最適化を行いたいと思ったので、自動内部リンクの機能も再度書き直すことにしました。
実際のコードは非常にシンプルですが、見た目は多くのコードになっているかもしれません。このバージョンのコードでは、img、a、code タグ内のタグテキストを特殊なマーク %&&&&&% に置換し、その後タグテキストを置換し、最後に特殊なマークを元のタグテキストに戻します。これにより、これらのタグ内のタグテキストの置換を回避することができます。余計なことは言わずに、直接コードを示します:
//WordPressの記事タグの自動内部リンク
add_filter('the_content', 'fanly_auto_tags_link');
function fanly_auto_tags_link($content) {
$tags = get_the_tags(); //現在の記事のタグを取得
if($tags){
foreach ($tags as $tag) {
$link = get_tag_link($tag->term_id); //タグのリンクを生成
$tag_name = preg_quote($tag->name, '/'); //タグ名をエスケープ
//<a>、<img>、<code>タグ内のコンテンツを保護
$content = preg_replace_callback('/(<a[^>]*>)(.*?)(</a>)/si', function($matches) use ($tag_name) {
return str_replace($tag_name, '%&&&&&%', $matches[0]);
}, $content);
$content = preg_replace_callback('/(<img[^>]*)(.*?)(' . $tag_name . ')(.*?)(>)/si', function($matches) use ($tag_name) {
return str_replace($tag_name, '%&&&&&%', $matches[0]);
}, $content);
$content = preg_replace_callback('/(<code[^>]*>)(.*?)(</code>)/si', function($matches) use ($tag_name) {
return str_replace($tag_name, '%&&&&&%', $matches[0]);
}, $content);
//コンテンツ内のタグテキストをリンクに置換し、置換回数を1に制限
$content = preg_replace('/' . $tag_name . '/iu', '<a href="' . $link . '">' . $tag->name . '</a>', $content, 1);
//保護されたタグ内のコンテンツを復元
$content = str_replace('%&&&&&%', $tag_name, $content);
}
}
return $content;
}
このコードは、記事の内容に自動的に各タグへのリンクを作成します。まず、現在の記事のすべてのタグを取得し、各タグに対してタグアーカイブページへのリンクを生成します。次に、コンテンツ内のタグテキストを正規表現で検索し、リンクに置換します。ここでは、HTML タグ内のコンテンツを置換するために preg_replace_callback 関数を使用しています。
見た目はかなり整っていますが、これは単純な使用法であり、最も手抜きなウェブサイト内リンクの最適化方法です。ただし、使用シナリオは個人によって異なるため、基本的な解決策を提供し、参考にしていただければと思います。実際には、さらなる強化やカスタムリンクの追加も可能です。
WordPress の最適化や質問については、以下の QQ グループに参加してください:255308000
特に注釈がない限り、すべてのコンテンツは泪雪ブログのオリジナル記事であり、いかなる形式でも転載を禁止します。