WordPressでカテゴリ一覧を表示させるには、wp_list_categoriesというテンプレートタグがありますが、出力結果が思い通りにならないことが多いので、get_termsを使って、カテゴリ一覧を表示させる方法です。
カテゴリ一覧を表示させる
get_termsでカテゴリ情報を取得するには、最初の引数にcategoryを指定します。
[php]echo '<ul…
WordPressには、is_front_page() 、is_single() など、様々な条件分岐タグが用意されていますが、子ページかどうかを判別するタグはデフォルトでは用意されていないようなので、調べてみたら、WordPress Codex内にいくつかのパターンが説明されていたので、まとめてみます。
パターン1
判別したい箇所に以下を記述<?php
global $post; // ループ外の場合
if ( is_page() && $post->post_parent ) {
// サブページの場合
} else {
// サブページではない場合
}
?>
固定ページかどうかの条件分岐タグ(is_page)を使って、ifで判別しています。「固定ページかつ親ページが存在する」場合なら、現在のページはサブページという感じになっていますね。
パターン2
functions.phpに以下を記述//子ページ判定
function is_subpage() {
global $post; // $post には現在の固定ページの情報があります
if ( is_page() && $post->post_parent ) { // 現在の固定ページが親ページを持つかどうかをチェックします
return $post->post_parent; // 親ページの ID を返します
} else { // 親ページを持たないので...
return false; // ...false を返します
};
};
パターン1の方法をfunctions.phpに記述して、いつでも使いまわせるようスニペット化しています。if文がTRUEの場合は、親ページのページIDが返されます。
使用方法
判別したい箇所に以下を記述<?php
if(is_subpage()){
echo "子ページです。";
}else{
echo "子ページではありません。";
}
?>
このパターン2を応用すれば、子ページの判別に関連することは、大体カバーできそうですね。 他にも親ページのIDが指定したIDと同じかどうか判断するパターンもありましたが、あまり必要性を感じなかったので、省略しました。 気になる方は、WordPress Codexでチェックしてみてください。
graffiti on the web
この投稿へのコメント
コメントはまだありません。