概要
get_posts_nav_link関数は、WordPressの投稿ナビゲーションを生成する際に使われる関数であり、前後のページへのリンクテキストを取得するのに役立ちます。この関数は、特定の投稿シリーズやアーカイブをユーザーがナビゲートするのを容易にするために実装されます。よく使われるシーンの例としては次の8つがあります。
- 投稿の前後リンク生成
- ページナビゲーションのカスタマイズ
- カスタムループにおけるナビゲーション管理
- シリーズ投稿のリンク設定
- サイトマップの生成
- カテゴリーページのナビゲーション
- タグアーカイブの移動リンク
- 特定条件での投稿移動リンク設定
get_posts_nav_link関数の構文は以下のとおりです。
get_posts_nav_link( $previous_link, $next_link );
パラメータ
$previous_link(文字列) – 前の投稿へのリンクテキスト。$next_link(文字列) – 次の投稿へのリンクテキスト。
戻り値
- 文字列: 生成されたリンクのHTML。
関連する関数
使用可能なバージョン
get_posts_nav_link関数は、WordPress 4.4.0以来非推奨とされています。
コアファイルパス
/wp-includes/plugin.php
この関数のアクションでの使用可能性
| アクション名 | 使用例 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプルコード1: 最初の投稿へのリンク
この例では、最初の投稿へのリンクを取得して表示します。
$first_post_link = get_posts_nav_link( '<a href="'.get_permalink().'?p=1">最初の投稿</a>' , '' );
echo $first_post_link;
(引用元: https://example.com/posts/1)
サンプルコード2: 前の投稿へのリンク
このコードでは、前の投稿へのリンクを取得して表示します。
$previous_post_link = get_posts_nav_link( '<a href="'.get_permalink(get_previous_post()->ID).'">前の投稿</a>' , '' );
echo $previous_post_link;
(引用元: https://example.com/posts/2)
サンプルコード3: 次の投稿へのリンク
この例では、次の投稿へのリンクを取得して表示します。
$next_post_link = get_posts_nav_link( '' , '<a href="'.get_permalink(get_next_post()->ID).'">次の投稿</a>' );
echo $next_post_link;
(引用元: https://example.com/posts/3)
サンプルコード4: 前後の投稿へのリンク
このコードでは、前後の投稿へのリンクを同時に取得して表示します。
$nav_links = get_posts_nav_link( '<a href="'.get_permalink(get_previous_post()->ID).'">前の投稿</a>' , '<a href="'.get_permalink(get_next_post()->ID).'">次の投稿</a>' );
echo $nav_links;
(引用元: https://example.com/posts/4)
サンプルコード5: ナビゲーション全体を表示
この例では、前後の投稿ナビゲーションをまとめて表示します。
$navigation = get_posts_nav_link( '<a href="'.get_permalink(get_previous_post()->ID).'">前へ</a>' , '<a href="'.get_permalink(get_next_post()->ID).'">次へ</a>' );
if ( $navigation ) {
echo '<div class="post-navigation">' . $navigation . '</div>';
}
(引用元: https://example.com/posts/5)