get_adjacent_post_link

説明

string get_adjacent_post_link( string $format, string $link [ , bool $in_same_cat$in_same_term = false [ , mixed $excluded_categories$excluded_terms = '' [ , bool $previous = true [ , string $taxonomy = 'category' ] ] ] ] )
直前または直後の投稿ページのリンクを取得する。

パラメータ

  • $format
    フォーマットを指定。
  • $link
    リンクタイトルを指定。
  • $in_same_cat$in_same_term
    同じターム([3.8.0]より前のバージョンはカテゴリー、[3.8.0]以降のバージョンは$taxonomyで指定されたタクソノミー)内の投稿ページに限定する場合はtrue、限定しない場合はfalseを指定。省略時はfalseが適用される。
  • $excluded_categories$excluded_terms
    除外するターム([3.8.0]より前のバージョンはカテゴリー、[3.8.0]以降のバージョンは$taxonomyで指定されたタクソノミー)を指定する場合は、そのタームIDを文字列または配列で指定。
  • $previous
    直前の投稿ページの場合はtrueを、直後の場合はfalseを指定(省略時はtrue)。
  • $taxonomy
    [3.8.0]$in_same_termがtrueの場合に同一判定するタクソノミー名を指定(省略時は'category')。

返り値

パラメータ$previousで示した投稿ページのリンク(aタグ)を返す。

注意

next_post_link関数で出力されるリンクを取得する。
・パラメータ$formatは、'%link'を含まなければならない。
・パラメータ$linkは、投稿タイトルの'%title'、投稿日の'%date'を含めることができる。

使用例

  • 直前の投稿ページのリンクを取得する。
    <?php $url = get_adjacent_post_link( '[%link]', '前の記事へ' ); ?>
  • 同カテゴリー内の直前の投稿ページのリンクを取得する。
    <?php $url = get_adjacent_post_link( '[%link]', '前の記事へ', true ); ?>
  • カテゴリーIDが1のカテゴリーを除外して直前の投稿ページのリンクを取得する。
    <?php $url = get_adjacent_post_link( '[%link]', '前の記事へ', false, '1' ); ?>
  • カテゴリーIDが1のカテゴリーを除外して直後の投稿ページのリンクを取得する。
    <?php $url = get_adjacent_post_link( '%link &raquo;', '%title', false, '1', false ); ?>
  • 同タグ内の直前の投稿ページのリンクを取得する。
    <?php $url = get_adjacent_post_link( '[%link]', '前の記事へ', true, '', 'post_tag' ); ?>

フィルター

リンクテキストのタイトルを決定する前に'the_title'フィルターを呼び出す。$titleには投稿情報のタイトルが、$post_idには投稿情報IDが格納される。
$title = apply_filters( 'the_title', $title, $post_id );
パラメータ$previousがtrueの場合、リンクテキストを返す前に'previous_post_link'フィルターを呼び出す。$outputにはリンクテキストが、$format$linkはそれぞれパラメータの内容が、$postには投稿情報が、$adjacent(4.2.0で追加)には'previous'が格納される。
return apply_filters( 'previous_post_link', $output, $format, $link, $post, $adjacent );
パラメータ$previousがfalseの場合、リンクテキストを返す前に'next_post_link'フィルターを呼び出す。$outputにはリンクテキストが、$format$linkはそれぞれパラメータの内容が、$postには投稿情報が、$adjacent(4.2.0で追加)には'next'が格納される。
return apply_filters( 'next_post_link', $output, $format, $link, $post, $adjacent );

アクション

直接実行するアクションはありません。

ソースファイル

/wp-includes/link-template.php

最終更新 : 2015年05月28日 12:56



お勧め

Posts filter multiselect:プラグイン作ってみました(2022年4月8日 更新)

先週の金曜日、知り合いの方から「投稿一覧ページで絞り込みを行う際、複数選択できないか」といった問い合わせがあり、その時には「標準では無理ですね」と返答しました。このこと自体は事実なのですが、要するに「複数選択可能なドロップダウンメニュー」が実現できれば対応するのはそれほど難しくないような気がしました。この週末、そんなノリでちょっとコーディングしてできたのがこのプラグインです。

全投稿を取得するのはnopaging=1でいい(2011年8月31日 更新)

query_posts関数(またはWP_Queryクラス)を使う場合、取得する件数の指定を省略すると管理者ページの「表示設定」-「1ページに表示する最大件数」の指定値分だけの投稿情報を取得する。それでは条件にマッチするすべての投稿情報を取得するには?

Contact Form 7に確認フェーズを(2012年12月16日 更新)

Contact Form 7はWordPressによるサイト製作でお世話になることが多いプラグインの1つ。ただ、クライアント様によっては、入力、確認、送信の3フェーズにしたいという要望があり、そんな時は別の方法を採用していたのですが、JavaScript(jQuery)を使ってページ遷移しなくてもいいなら確認フェーズは用意できるかなと思い、作り込んでみた。

古めのリビジョンを削除した時のメモ(2022年5月16日 更新)

大きく育ったデータベースを整理するため、古めのリビジョンとそれに紐づいたカスタムフィールドデータを削除。と思ったら「The total number of locks exceeds the lock table size」というエラーが発生して削除できなかった。

プラグインで注意が必要な関数(2013年11月27日 更新)

先日「Login rebuilder」という自作プラグインをアップデートした際、ユーザーさんからエラーになると連絡をいただいた。標準環境では問題なく、どうやら何らかのプラグインが影響しているらしい。