adjacent_posts_rel_link() は、WordPress の <head> 内に前後の投稿へのリンク(rel="prev" や rel="next")を自動的に追加するテンプレートタグです。
検索エンジンのクロール効率を向上させ、SEO の最適化に役立ちます。しかし、現在では WordPress では非推奨となっており、wp_head() で自動的に挿入される rel="prev" / rel="next" を利用することが推奨されています。
機能の説明
adjacent_posts_rel_link() は、現在の投稿ページから前後の投稿ページへリンクを追加するために使用されます。このタグを使うことで、検索エンジンがサイト内をスムーズに巡回しやすくなり、SEO 効果が期待できます。ただし、この関数は WordPress 3.3 以降では推奨されておらず、代わりに wp_head() で自動的に挿入されるリンクを利用することが望ましいです。
主な用途
- 前後の投稿ページへのナビゲーションを提供
- 検索エンジンのクローラーにページ間の関係性を伝える
- テーマの
<head>内で SEO を強化する
シンプルなコード例
adjacent_posts_rel_link();このコードを <head> 内で使用すると、現在の投稿の前後にあたる投稿の rel="prev" および rel="next" のリンクが自動的に挿入されます。
出力される HTML(例)
<link rel="prev" href="https://example.com/previous-post/" />
<link rel="next" href="https://example.com/next-post/" />使い方の説明
基本的な使い方
以下のコードを header.php の <head> 内に追加すると、前後の投稿リンクが <head> に挿入されます。
<head>
<title><?php wp_title(); ?></title>
<?php adjacent_posts_rel_link(); ?>
<?php wp_head(); ?>
</head>カスタマイズ
adjacent_posts_rel_link() は引数を受け取りませんが、前後の投稿リンクをカスタマイズしたい場合は get_adjacent_post() などを使うのが一般的です。
<?php
$prev_post = get_adjacent_post(false, '', true);
$next_post = get_adjacent_post(false, '', false);
if ($prev_post) {
echo '<link rel="prev" href="' . get_permalink($prev_post) . '" />';
}
if ($next_post) {
echo '<link rel="next" href="' . get_permalink($next_post) . '" />';
}
?>一緒に使うことが多い関連タグ
get_adjacent_post()
前後の投稿を取得するための関数。
$prev_post = get_adjacent_post(false, '', true);
if ($prev_post) {
echo '<a href="' . get_permalink($prev_post) . '">前の記事へ</a>';
}previous_post_link() / next_post_link()
前後の投稿へナビゲーションリンクを出力するテンプレートタグ。
<?php previous_post_link('%link', '« %title'); ?>
<?php next_post_link('%link', '%title »'); ?>wp_head()
wp_head() を <head> 内に含めることで、rel="prev" / rel="next" が自動的に挿入される。
<?php wp_head(); ?>追加情報で取得したい場合
現在の投稿の前後関係を取得する
get_previous_post() / get_next_post() を使うことで、現在の投稿の前後にある記事の情報を取得できます。
$prev_post = get_previous_post();
$next_post = get_next_post();
if ($prev_post) {
echo '<a href="' . get_permalink($prev_post) . '">前の記事: ' . get_the_title($prev_post) . '</a>';
}
if ($next_post) {
echo '<a href="' . get_permalink($next_post) . '">次の記事: ' . get_the_title($next_post) . '</a>';
}想定されるトラブル
前後のリンクが表示されない
解決方法
adjacent_posts_rel_link()は WordPress 3.3 以降で非推奨となったため、現在のバージョンでは自動的に<head>に挿入されるrel="prev"/rel="next"を利用するのが推奨されます。wp_head()を適切にheader.php内で呼び出しているか確認してください。
Q&A
まとめ
adjacent_posts_rel_link() は、投稿の前後関係を示す rel="prev" / rel="next" を <head> に追加するテンプレートタグです。
しかし、WordPress 3.3 以降では非推奨となり、wp_head() による自動挿入が推奨されています。最新の WordPress では get_adjacent_post() や previous_post_link() などを利用して、前後の投稿ナビゲーションを適切に実装するのが望ましいです。
コメント