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()
などを利用して、前後の投稿ナビゲーションを適切に実装するのが望ましいです。
コメント