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


ピックアップ記事

wordpressのアーカイブ、カテゴリテンプレートで現在のタグIDを取得しリンクを設定する

2014年08月04日 web関連WordPress
アーカイブテンプレートで表示中のタグIDを取得する 下記で現在表示中のタグのtag_idが取得出来ます。 [php]$tag_id = get_query_var('tag_id');[/php] tag_idからタグページヘのリンクを設定する タグページヘのリンクを設定するには、WordPressのget_tag_link関数を使います。引数に先ほど取得したtag_idを設定…
「wordpressのアーカイブ、カテゴリテンプレートで現在のタグIDを取得しリンクを設定する」をはてなブックマークに追加

カテゴリ名を表示する

2011年11月28日 WordPress
[php] <?php single_cat_title(); ?> [/php]
「カテゴリ名を表示する」をはてなブックマークに追加

Facebook アプリ開発 友達にアプリを紹介する機能を実装する

2012年03月19日 Facebookphp
利用中のアプリを友達に紹介してもらう機能は以下のようにすることで実装できます。 [php] <?php //友達に紹介する設定 $app_id = "YOUR_APP_ID"; $canvas_page = "YOUR_CANVAS_PAGE"; $message = "この素晴…
「Facebook アプリ開発 友達にアプリを紹介する機能を実装する」をはてなブックマークに追加

PHP 短縮URLのAPIから短縮後のURLを取得

2011年08月09日 web関連phptwitter API
twitterに関連したwebサービスを作っているとURL短縮の必要が出てくることが多々あります。 そんな時には、有名なurl短縮サービスを利用することになると思うのですが、代表的なbit.ly、TinyURLを利用する方法です。 …
「PHP 短縮URLのAPIから短縮後のURLを取得」をはてなブックマークに追加

ページIDで表示する画像を切り替える

2011年11月21日 WordPress
[php] <?php if(is_page(16)){ ?> <img src="<?php echo get_template_directory_uri(); ?>/images/mainImg_<?php the_ID() ;?>.jpg" /> <?php } ?> [/php]
「ページIDで表示する画像を切り替える」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy