WordPress 同一カテゴリー内でのページ遷移についてつまづいたのでメモ。
- ファッション(10)
- ブランド(6)
- ショッピング(4)
なんてゆうカテゴリーがあった時に、WordPressのレッスンブックに書いていた、
<!-- 表示内容ループ -->
<?php if(have_posts()): while(have_posts()): the_post(); ?>
<!-- ブログの個別ページに表示させるページ遷移 -->
<?php if(is_single()): ?>
<div class="pagelink">
<span class="newpage"><?php next_post_link('« %link'); ?></span>
<span class="oldpage"><?php previous_post_link('%link »'); ?></span>
</div>
<?php endif; ?>
<?php endwhile; endif; ?>
<!-- ブログのトップページにだけ、複数ページある場合に表示させるページ遷移 -->
<?php if(is_home()): ?>
<div class="pagelink">
<span class="newpage"><?php previous_posts_link(' « BACK'); ?></span>
<span class="oldpage"><?php next_posts_link(' NEXT » '); ?></span>
</div>
<?php endif; ?>
だと
- ブログのトップページからアクセスした時のページ遷移
- 1つ1つのページにアクセスした時のページ遷移
はうまくいったんですが、
- ファッション(10)
というカテゴリー内のページ遷移がうまくいかなかったのでどうしたらいいものかとかなりつまづきました。色々調べた結果、
next_post_link('%link','%title',TRUE);
previous_post_link('%link','%title',TRUE);
にすりゃいいとの事でしたので、やってみたらいけました!
関数?の名前の解釈として、
- %link = aタグに置き換わる
- %title = リンクに表示させたい文字
- TRUE = 同じカテゴリー内の投稿ページに限定する場合
- ※FALSE = 限定しない場合はfalseを指定。省略時はfalseが適用される。
という意味らしい。
やってみた結果のソースは以下。
<!-- 表示内容ループ -->
<?php if(have_posts()): while(have_posts()): the_post(); ?>
<!-- ブログの個別ページに表示させるページ遷移 -->
<?php if(is_single()): ?>
<div class="pagelink">
<span class="newpage"><?php next_post_link('« %link','%title',TRUE); ?></span>
<span class="oldpage"><?php previous_post_link('%link »','%title',TRUE); ?></span>
</div>
<?php endif; ?>
<?php endwhile; endif; ?>
<!-- ブログのトップページにだけ、複数ページある場合に表示させるページ遷移 -->
<div class="pagelink">
<span class="newpage"><?php previous_posts_link(' « BACK'); ?></span>
<span class="oldpage"><?php next_posts_link(' NEXT » '); ?></span>
</div>
ブログの個別ページに表示させるページ遷移の所に第3引数まで指定し、ブログのトップページにだけ複数ページある場合に表示させるページ遷移の所で、
<?php if(is_home()): ?>
<?php endif; ?>
を外してあげました。
そしたら解決できました!
comment
たらこさま はじめまして、コメントありがとうございます!第二階層以下はまだ試したことがなかったので今はわかり兼ねます…。すみません…。調べてみます~!解決したらコメント入れますね!たらこさまの方でも何かわかりましたらご一報いただけますとすごくうれしいです!
はじめまして。
私もカテゴリのページ遷移を調べていておじゃましました。
第一階層のカテゴリまではこの方法で動くのですが、第二階層以下のカテゴリでやってみると上手く動かないのです。
そういう場合のページ遷移方法をご存知でしょうか・・・?