wordpressでの前後記事へのナビゲーションは、こんな風になってます。
<div class="navigation">
<div class="alignleft"><?php previous_post_link('« %link') ?></div>
<div class="alignright"><?php next_post_link('%link »') ?></div>
</div>
デフォルト・テーマには書いてあって、これを利用すると見てる記事の前後記事へのリンクが表示されて便利です。
ですが、前後それぞれ存在しない時も、この状態では空の部分が出力されてしまってちょっと困ってました。
前後の記事が「存在する場合は表示」、「ない時は非表示」にしてみる
以下みたいな形にしてみました。
<?php if(get_next_post() || get_previous_post()) : ?>
<div class="navigation">
<?php if(next_post_link('<div class="alignleft">次:%link|</div>')) : ?><?php endif ; ?>
<?php if(previous_post_link('<div class="alignright">|%link:前</div>')) : ?><?php endif ; ?>
</div>
<?php endif; ?>
これで存在する時とない時で表示分け出来てより便利になりました。
同一カテゴリー内での前後記事へナビゲート
MTの時も随分悩んでた覚えがあるのですが、同一カテゴリー内でのナビゲーションもやってみました。
以下みたいになります。
<?php if(get_next_post() || get_previous_post()) : ?>
<div class="alignleft">
<?php if(next_post_link('<div class="alignleft">次:%link|</div>', '%title', TRUE, '')) : ?><?php endif ; ?>
</div>
<div class="alignright">
<?php if(previous_post_link('<div class="alignright">|%link:前</div>', '%title', TRUE, '')) : ?><?php endif ; ?>
</div>
<?php endif; ?>
▼in_same_cat・・・(論理値) 表示している記事と同じカテゴリーの前後の記事を表示するかどうかを設定。
TRUE の場合、同じカテゴリーの記事だけ表示。。。との事です。
- TRUE
- FALSE(デフォルト)
▼link・・・(文字列)表示するリンクのテキスト。デフォルトは前の記事のタイトル(%title)。
あとがき
特別気にならない方は普通に使ってて良いと思うんですが、プラグインも利用せずに出来る事なので、せっかくだから導入してみると良いのですヽ( ・ω・)ノ
またひとつ勉強させて貰いました。
■前後に記事があるときだけナビゲーションを出す | WordPress | 『Weblogy』
■テンプレートタグ/previous post link - WordPress Codex 日本語版