get_adjacent_post()


WordPressのget_adjacent_post()関数は、現在の投稿に隣接する前後の投稿を取得するために使用されます。

シンタックス

get_adjacent_post( bool $in_same_term = false, string $excluded_terms = '', bool $previous = true, string $taxonomy = 'category' );

引数の説明

  • $in_same_term (bool) — 同じタクソノミー内で隣接する投稿のみを取得するかどうかを指定します。デフォルトはfalseです。
  • $excluded_terms (string) — 除外するタームIDをカンマ区切りで指定します。デフォルトは空文字です。
  • $previous (bool) — 前の投稿を取得するか、後の投稿を取得するかを指定します。デフォルトはtrue(前の投稿)です。
  • $taxonomy (string) — 使用するタクソノミーを指定します。デフォルトは'category'です。

例1: 前の投稿のタイトルを表示する

次のコードは、現在の投稿の前にある投稿のタイトルを表示します。

<?php
$prev_post = get_adjacent_post( false, '', true );
if ( $prev_post ) {
    echo '<a href="' . get_permalink( $prev_post ) . '">' . get_the_title( $prev_post ) . '</a>';
}
?>

例2: 後の投稿のタイトルを表示する

後の投稿を取得し、そのタイトルを表示します。

<?php
$next_post = get_adjacent_post( false, '', false );
if ( $next_post ) {
    echo '<a href="' . get_permalink( $next_post ) . '">' . get_the_title( $next_post ) . '</a>';
}
?>

例3: 同じカテゴリー内で前後の投稿を取得する

現在の投稿と同じカテゴリーにある前後の投稿を表示します。

<?php
$prev_post = get_adjacent_post( true, '', true );
$next_post = get_adjacent_post( true, '', false );

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>';
}
?>

例4: 特定のカテゴリーを除外して取得する

特定のカテゴリーIDを除外しつつ前後の投稿を取得します。

<?php
$prev_post = get_adjacent_post( false, '3,5', true ); // カテゴリーID 3と5を除外
if ( $prev_post ) {
    echo '<a href="' . get_permalink( $prev_post ) . '">' . get_the_title( $prev_post ) . '</a>';
}
?>

例5: タクソノミーを指定して投稿を取得する

タクソノミーとして'post_tag'を指定して前の投稿を取得します。

<?php
$prev_post = get_adjacent_post( true, '', true, 'post_tag' );
if ( $prev_post ) {
    echo '<a href="' . get_permalink( $prev_post ) . '">' . get_the_title( $prev_post ) . '</a>';
}
?>

注意事項

  • get_adjacent_post()は投稿タイプが'post'でのみ動作します。
  • カスタム投稿タイプを使用している場合は、代わりにget_adjacent_post()を拡張するカスタム関数を作成する必要があります。

関連機能: