MENU

【非推奨】adjacent_posts_rel_link_wp_head()

adjacent_posts_rel_link_wp_head() は、WordPress の <head> 内に前後の投稿への rel="prev" および rel="next" のリンクを自動的に追加するテンプレートタグです。

このタグを利用することで、検索エンジンが記事の前後関係を認識しやすくなり、SEO にも好影響を与えます。しかし、現在の WordPress では非推奨とされており、代わりに wp_head への手動追加やカスタム実装が推奨されています。

目次

機能の説明

この関数は、投稿の前後関係を示す rel="prev"rel="next" のメタタグを <head> 内に追加します。

主な用途

  • 検索エンジン向けに前後の投稿を明示する
  • ページ間のナビゲーションを支援する
  • HTML <head> 内に自動で前後リンクを挿入する

この関数は、シングル投稿(single.php)でのみ適用されます。アーカイブページや固定ページでは適用されません。

シンプルなコード例

adjacent_posts_rel_link_wp_head();

この関数を wp_head フック内で使用すると、自動的に <head> 内に次のような HTML が追加されます。

<link rel="prev" href="https://example.com/previous-post" />
<link rel="next" href="https://example.com/next-post" />

しかし、この関数は現在 非推奨(deprecated) になっているため、代わりに手動で実装するのが推奨されます。

使い方の説明

基本的な使い方

通常は、テーマの functions.php または header.php に以下のように記述します。

function add_adjacent_posts_links() {
    adjacent_posts_rel_link_wp_head();
}
add_action('wp_head', 'add_adjacent_posts_links');

現在の推奨される方法(非推奨の関数を使わない)

非推奨の adjacent_posts_rel_link_wp_head() を使わずに、手動で前後の投稿リンクを追加する方法は次のとおりです。

function add_custom_adjacent_posts_rel_links() {
    if (is_single()) {
        $prev_post = get_previous_post();
        $next_post = get_next_post();
        
        if (!empty($prev_post)) {
            echo '<link rel="prev" href="' . get_permalink($prev_post->ID) . '" />' . "\n";
        }
        if (!empty($next_post)) {
            echo '<link rel="next" href="' . get_permalink($next_post->ID) . '" />' . "\n";
        }
    }
}
add_action('wp_head', 'add_custom_adjacent_posts_rel_links');
  • get_previous_post() で前の投稿を取得
  • get_next_post() で次の投稿を取得
  • is_single() でシングル投稿ページのみ適用

一緒に使うことが多い関連タグ

get_previous_post()

前の投稿情報を取得する。

$prev_post = get_previous_post();
if ($prev_post) {
    echo '<a href="' . get_permalink($prev_post->ID) . '">前の記事へ</a>';
}

get_next_post()

次の投稿情報を取得する。

$next_post = get_next_post();
if ($next_post) {
    echo '<a href="' . get_permalink($next_post->ID) . '">次の記事へ</a>';
}

wp_head

WordPress の <head> にカスタム要素を追加する。

add_action('wp_head', 'custom_function');

追加情報で取得したい場合

前後の記事のタイトルを取得する

以下のコードを使うと、前後の記事のタイトルとリンクを表示できます。

$prev_post = get_previous_post();
$next_post = get_next_post();

if ($prev_post) {
    echo '<a href="' . get_permalink($prev_post->ID) . '">« ' . get_the_title($prev_post->ID) . '</a>';
}
if ($next_post) {
    echo '<a href="' . get_permalink($next_post->ID) . '">' . get_the_title($next_post->ID) . ' »</a>';
}

出力例

<a href="https://example.com/previous-post">« 前の記事タイトル</a>
<a href="https://example.com/next-post">次の記事タイトル »</a>

想定されるトラブル

adjacent_posts_rel_link_wp_head() を使用しても何も表示されない

解決方法

  • この関数は 非推奨 になったため、get_previous_post()get_next_post() を使った手動実装に切り替える。
  • wp_head アクション内に関数を追加しているか確認する。

カスタム投稿タイプで機能しない

解決方法

get_previous_post()get_next_post()in_same_termtrue にすることで、カスタム投稿タイプでも動作可能。

$prev_post = get_previous_post(true);
$next_post = get_next_post(true);

Q&A

adjacent_posts_rel_link_wp_head() を使うべきですか?

いいえ。この関数は 非推奨 なので、get_previous_post()get_next_post() を使った方法で実装するのが推奨されます。

前後の投稿リンクを SEO に活かせますか?

はい。rel="prev"rel="next" のメタタグを <head> 内に適切に配置することで、検索エンジンがページの前後関係を理解しやすくなります。

前後の投稿を特定のカテゴリー内で制限できますか?

get_previous_post()get_next_post()in_same_term 引数を true にすると、同じカテゴリー内の前後の記事を取得できます。

$prev_post = get_previous_post(true, '', 'category');
$next_post = get_next_post(true, '', 'category');

まとめ

adjacent_posts_rel_link_wp_head() は、WordPress の <head> 内に前後の投稿への rel="prev" および rel="next" のリンクを追加する関数ですが、現在は 非推奨 になっています。

そのため、代わりに get_previous_post()get_next_post() を用いた手動実装が推奨されます。SEO 効果を高めるためにも、適切な方法で前後の投稿リンクを管理することが重要です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次