get_adjacent_post()

get_adjacent_post()関数とは

get_adjacent_post()関数は、投稿の公開日をもとに、現在の投稿に関連して隣接する投稿(前または次)を取得するWordPressの関数です。

get_adjacent_post()関数のパラメータ

$in_same_term (bool) (オプション) – 隣の投稿を現在の投稿と同じタクソノミータームに入れるかどうか。デフォルトは false です。
$excluded_terms (string/array) (オプション) – 隣接投稿クエリから除外するタクソノミーターム。デフォルトは空文字列。
$previous (bool) (オプション) – 前の投稿を取得するか、次の投稿を取得するか。デフォルトは true (前の記事)。
taxonomy (string) (オプション) – どの投稿が隣接しているかを判断する際に使用する分類法。デフォルトは ‘category’ です。

get_adjacent_post()関数の戻り値

get_adjacent_post() 関数は、隣接する投稿の post オブジェクトを返し、隣接する投稿がない場合は null を返します。

get_adjacent_post()関数の使い方

get_adjacent_post()関数で現在の記事に隣接する次の記事を取得するには、以下のコードを使用します。

$next_post = get_adjacent_post();
if ( $next_post ) {
  // 次の記事が見つかった場合の処理
  echo '次の記事のタイトル: ' . $next_post->post_title;
} else {
  // 次の記事が見つからなかった場合の処理
  echo '次の記事がありません';
}

これは、前の投稿を取得し (この関数のデフォルトの動作)、 その投稿へのリンクを投稿タイトルをリンクテキストとして表示します。

代わりに次の投稿を取得したい場合は、$previous パラメータを false に設定します。

$previous_post = get_adjacent_post( false, '', '', true );
if ( $previous_post ) {
  // 前の記事が見つかった場合の処理
  echo '前の記事のタイトル: ' . $previous_post->post_title;
} else {
  // 前の記事が見つからなかった場合の処理
  echo '前の記事がありません';
}

また、同じターム(カテゴリーやタグなど)内で次の記事を取得することもできます。

$next_post = get_adjacent_post( true );
if ( $next_post ) {
  // 同じターム内で次の記事が見つかった場合の処理
  echo '次の記事のタイトル: ' . $next_post->post_title;
} else {
  // 同じターム内で次の記事が見つからなかった場合の処理
  echo '同じターム内で次の記事がありません';
}

また、特定のタームを除外して次の記事を取得することもできます。

$excluded_terms = array( 'term-slug-1', 'term-slug-2' );
$next_post = get_adjacent_post( false, $excluded_terms );
if ( $next_post ) {
// 特定のタームを除外して次の記事が見つかった場合の処理
echo '次の記事のタイトル: ' . $next_post->post_title;
} else {
// 特定のタームを除外して次の記事が見つからなかった場合の処理
echo '特定のタームを除外して次の記事がありません';
}

また、使用するタクソノミーを変更することもできます。

$next_post = get_adjacent_post( false, '', 'custom-taxonomy' );
if ( $next_post ) {
  // カスタムタクソノミーで次の記事が見つかった場合の処理
  echo '次の記事のタイトル: ' . $next_post->post_title;
} else {
  // カスタムタクソノミーで次の記事が見つからなかった場合の処理
  echo 'カスタムタクソノミーで次の記事がありません';
}

使い方の例としては以上です。「get_adjacent_post」は、現在の記事に隣接する次の記事を取得するための関数です。複数のパラメーターを使用することで、取得する記事を絞り込んだり、特定のタームを除外したり、使用するタクソノミーを変更したりすることができます。取得された記事は、次(または前)の記事のオブジェクトとして返されます。

まとめ

  • get_adjacent_post() 関数は、現在の投稿に関連する隣接投稿 (前または次の投稿) を取得するものです。
  • この関数はいくつかのパラメータを受け取り、同じタクソノミータームの投稿のみを含めるかどうか、どのタクソノミーを使用するか、前の投稿と次の投稿のどちらを取得するかなどの動作を制御することができます。
  • この関数は隣接する投稿のオブジェクトを返し、隣接する投稿が見つからない場合は null を返します。