概要
previous_posts
フィルタは、アーカイブページなどの前ページリンクを取得または表示する際に用いられます。このフィルタは、ページネーションを制御するために使用され、特に次の用途で役立ちます:
- カスタムページネーションの生成
- アーカイブページのリンクを調整
- カスタムクエリの結果に基づくリンクの変更
- XML-RPC経由で取得するページデータのカスタマイズ
- ウィジェットやショートコードでのページネーションの管理
- SEO対策としてのディスクリプションリンクの生成
- その他、リンク表示に関する条件を追加
- ショッピングサイトなどでのフィルタリング結果に基づくナビゲーションの調整
構文
apply_filters( 'previous_posts', $previous_posts );
パラメータ
$previous_posts
: 取得された以前の投稿のクエリ結果。
戻り値
フィルタが適用された後の以前の投稿の結果。
関連する関数
https://refwp.com/?titleonly=1&s=previous_posts
使用可能なバージョン
previous_posts
フィルタは、WordPress 1.5以降で使用可能です。このフィルタは特定のバージョンで非推奨または削除されることはありません。
コアファイルのパス
wp-includes/query.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: カスタムページネーションの生成
このサンプルコードは、アーカイブページで独自のページネーションを構築するためにprevious_posts
フィルタを使っています。
add_filter( 'previous_posts', 'custom_previous_posts_link' );
function custom_previous_posts_link( $previous_posts ) {
if ( is_archive() ) {
$previous_posts .= '<li><a href="your-custom-url">Previous</a></li>';
}
return $previous_posts;
}
サンプル 2: カスタムクエリの結果に基づくリンクの変更
このコードは、特定の条件に基づいて前ページリンクを変更します。
add_filter( 'previous_posts', 'conditional_previous_posts_link' );
function conditional_previous_posts_link( $previous_posts ) {
if ( some_condition() ) {
$previous_posts = '<a href="/new-url">Go Back</a>';
}
return $previous_posts;
}
サンプル 3: SEO対策としてのディスクリプションリンクの生成
SEOの観点から、前ページリンクに特定の説明を追加します。
add_filter( 'previous_posts', 'seo_previous_posts_link' );
function seo_previous_posts_link( $previous_posts ) {
$previous_posts .= '<a href="your-seo-url" title="Previous posts">Previous Posts</a>';
return $previous_posts;
}
サンプル 4: XML-RPC経由で取得するデータカスタマイズ
XML-RPCでのデータ取得時に前ページリンクを調整します。
add_filter( 'previous_posts', 'xmlrpc_previous_posts_link' );
function xmlrpc_previous_posts_link( $previous_posts ) {
if ( is_xmlrpc() ) {
return '<xmlrpc-url>';
}
return $previous_posts;
}
サンプル 5: ショートコードでのページネーションの管理
ショートコードを使用して、特定のページネーションを表示します。
add_filter( 'previous_posts', 'shortcode_previous_posts_link' );
function shortcode_previous_posts_link( $previous_posts ) {
return do_shortcode('[your_shortcode]');
}
これらのサンプルは、様々な状況でprevious_posts
フィルタを使用し、アーカイブページの前ページリンクの取得または表示をカスタマイズする方法を示しています。