WordPress個別記事、アーカイブでのページ送り設置でちょいちょい混乱するのでメモしとく。
single
ループ内に記述する。
基本形
<?php previous_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy ); ?>
<?php next_post_link( $format, $link, $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ); ?>
$link
previous_post_link() 初期値: %title – ひとつ前の投稿のタイトル
next_post_link() 初期値: %title – 次の投稿のタイトル
他のパラメータはCodexで!
WordPress Codex テンプレートタグ/previous post link
WordPress Codex テンプレートタグ/next post link
前後の記事の有無で表示を分岐させる実装例
<?php
$prev_post = get_previous_post();
$next_post = get_next_post();
if( isset($prev_post) || isset($next_post) ):
?>
<div class="pager-wrapper">
<?php if(isset($prev_post)): ?>
<div class="pager-prev">
<?php previous_post_link('%link', '<i class="icon"></i>prev', true); ?>
</div>
<?php endif; ?>
<?php if(isset($next_post)): ?>
<div class="pager-next">
<?php next_post_link('%link', '<i class="icon"></i>next', true); ?>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
archive
ループ外に記述する。
基本形
<?php previous_posts_link( $label ); ?>
<?php next_posts_link( $label, $max_pages ); ?>
$label
previous_posts_link() 初期値: ‘« Previous Page’
next_posts_link() 初期値: ‘Next Page »’
WordPress Codex テンプレートタグ/previous posts link
WordPress Codex テンプレートタグ/next posts link
前後の記事の有無で表示を分岐させる実装例
<?php
$prev_post = get_previous_posts_link();
$next_post = get_next_posts_link();
if( isset($prev_post) || isset($next_post) ):
?>
<div class="pager-wrapper">
<?php if(isset($prev_post)): ?>
<div class="pager-prev">
<?php previous_posts_link('<i class="icon"></i>prev'); ?>
</div>
<?php endif; ?>
<?php if(isset($next_post)): ?>
<div class="pager-next">
<?php next_posts_link('<i class="icon"></i>next', 0); ?>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
出力されるaタグにclassとか書きたいとき
single
<?php
$prev_post = get_previous_post();
$next_post = get_next_post();
?>
<a href="<?php echo get_permalink( $prev_post->ID ); ?>" class="class"><i class="icon"></i>prev</a>
<a href="<?php echo get_permalink( $next_post->ID ); ?>" class="class"><i class="icon"></i>next</a>
get_permalink()以外に何かないんだろうか と思っているのですが
archive
<a href="<?php echo get_previous_posts_page_link(); ?>" class="class"><i class="icon"></i>prev</a>
<a href="<?php echo get_next_posts_page_link(); ?>" class="class"><i class="icon"></i>next</a>
余談
次とか前とかいうけど、それは新しいのか古いのか
ループのorder(表示順)が影響するので場合による。
とはいえ
昇順(ASC):数字が小→大=古いものから新しいものへ
降順(DESC):数字が大→小=新しいものから古いものへ
デフォルトは降順
→なので、デフォルトでは、previous(前)が新しい記事になり、next(次)が古い記事になる
…Codexに書いてあることと逆な気がするんだけど、わたしは何か勘違いしてるんでしょうか…???