2013年10月03日 WordPressphp

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でチェックしてみてください。

この投稿へのコメント

コメントはまだありません。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA


ピックアップ記事

検索フォームを設置し、検索結果を表示させる

2012年01月23日 WordPress
1.まずは検索フォームを設置します searchform.php 2.次に検索結果を取得、表示させる search.phpの検索結果を表示させる部分…
「検索フォームを設置し、検索結果を表示させる」をはてなブックマークに追加

PHP IE6かどうかユーザーエージェントを調べる

2011年06月17日 php
IE6のシェアが低くなってきているので、いまさら感はありますが、それでもIE6を完全無視出来ない場合があるので、メモしておきます。 PHPでユーザーエージェントを見分けて、IE6とそれ以外を切り分ける時に使えると思います。 …
「PHP IE6かどうかユーザーエージェントを調べる」をはてなブックマークに追加

simplexml_load_fileでRSSを取得・表示させる

2012年02月11日 zencartphp
simplexml_load_fileとは simplexml_load_fileは、PHP5から利用可能になった関数で、XMLをパースしてオブジェクトに代入します。 今回は、オープンソースのECサイト構築システム「ZenCart」に外部ブログ(WordPress)のRSSを表示させてみました。 設置コード [php] <?php $rss = "http://apr20…
「simplexml_load_fileでRSSを取得・表示させる」をはてなブックマークに追加

WordPressのサムネイルのサイズ指定を削除

2013年11月10日 web関連WordPressphp
WordPressのテーマ内で、the_post_thumbnailで記事のアイキャッチを表示させる際に、width,heightがimgタグ内で設定されていますが、それを消す方法です。 レスポンシブウェブデザインをする際には、ハードコーディングは外したほうがいいかもしれませんね。 functions.php内に以下を記述 [php]//サムネイルのサイズ指定削除 add_fi…
「WordPressのサムネイルのサイズ指定を削除」をはてなブックマークに追加

WordPressで現在表示中のテンプレートファイル名を取得

2014年08月25日 WordPressphp
現在のテンプレートファイル名の拡張子を除いた名前をbodyのidに設定したかったので、テンプレートファイル名を取得する方法を調べました。 WordPressのトップページとカテゴリページでデザインを変えたい場合などに役立つかと思います。 [php]global $template; $template_file_name = basename($template, '.php');[…
「WordPressで現在表示中のテンプレートファイル名を取得」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy