WordPressの条件分岐
ふと思ったのがこのブログのページネーション。
カテゴリ毎になってないなと・・・
脱線するけど、ページネーション?ページャー?どっちでもいいけど決まってないのってなんか嫌ですね。
基本的には「ページネーション」と言ってるけど、面倒くさいと「ページャー」って言っちゃう癖直したい。
てことで早速変えてみた。
まずは条件分岐タグのおさらい
条件分岐タグとは??
WordPressでサイトを作るときに絶対に必要なります。
カテゴリ毎に読み込むテンプレートを変えたりと、他にも色々使い方があります。
夢が広がりんぐですね。
is_home()
これはメインブログページが表示されている時
※注意:ページネーション付きの場合、移動先(page2など)の場合でも「True」が返ってきます。
is_front_page()
サイトのフロントページが表示されている場合
※固定ページ、投稿ページにかぎらず管理画面等で「フロントページ」に「固定ページ」もしくは「最新の投稿」を選択した場合
is_page()
固定ページ
is_single()
記事の個別ページ
is_category()
カテゴリーにアーカイブページ
in_category()
個別ページ内でどのカテゴリーに属しているか判別する
is sticky
投稿編集ページで「この投稿を戦闘に固定表示」にチェックした場合
is_admin()
管理画面
大体がパラメータでもっと詳細に分岐できます。
<?php if(is_single('10')): ?> 投稿ID10のページです。 <?php elseif(is_single('11'): ?> 投稿ID11のページです。 <?php endif; ?>
<?php if(in_category('example1')): ?> <p>カテゴリはexample1です。</p> <?php elseif(in_category('example2')): ?> <p>カテゴリはexample2です。</p> <?php else: ?> <p>カテゴリはexample1でもexample2以外です</p> <?php endif; ?>
複数指定もできます。
<?php if(in_category( array( 'example1','example2','example3'))): ?> <p>この記事はexample1、example2、example3のどれかにカテゴライズされています。</p> <?php endif; ?>
<?php if(!is_single()): ?> <p>個別ページではありません。</p> <?php endif; ?>
といった風に、~ではなかった場合などという処理もできます。
他にも
is_tag()
タグのアーカイブページ
has_tag()
タグのある投稿がループ内で表示されている場合
※has_tag(‘apple’)とした場合、「apple」というタグがついている投稿かどうか
is_tax()
タクソノミーのアーカイブページ
is_author()
作成者のアーカイブページ
is_archive()
アーカイブページ
is_search()
検索結果ページ
その他にもたくさんの条件分岐がありますが・・・
詳しくはWordPress Codexを見てください。
としただけでした。
さて本題。
ページネーションですね。
僕の場合、pagenation.phpというテンプレートファイルを読み込ませています。
上で書いたコードのように。
<?php if(is_single()): ?> <p class="pagenation"> <span class="oldpage"><?php previous_post_link('« %link', '%title', TRUE, ''); ?></span> <span class="newpage"><?php next_post_link('%link »', '%title', TRUE, ''); ?></span> </p> <?php else: ?> <p class="pagenation"> <span class="oldpage"><?php next_posts_link('&laquo; Older_posts'); ?></span> <span class="newpage"><?php previous_posts_link('Newer_posts &raquo;'); ?></span> </p> <?php endif; ?>
多分、多分間違ってないはず・・・
どうだろ汗
このブログ、毎日のようにマイナーチェンジしてますのでぜひ毎日見てくださいねw