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


ピックアップ記事

XML-RPC を利用してwordpressに記事を投稿する

2017年05月30日 WordPressphp
必要なライブラリをダウンロード XML-RPCを利用するのに必要なライブラリをダウンロードして、インクルードします。 IXR_Library.phpをダウンロード [php]include_once("IXR_Library.php"); $client=new IXR_Client("http://wordpress-domain.com/xmlrp…
「XML-RPC を利用してwordpressに記事を投稿する」をはてなブックマークに追加

簡単に記事が編集出来る WordPress のプラグイン

2011年05月26日 WordPress
ということで、タイトル通りのプラグインを紹介します。 Front-end Editor はログインして管理画面から操作しなくても、WPのサイト上から記事やウィジェットなどの編集を可能にしてくれる便利なプラグインです。 Front-end Editorの使用方法 プラグインをダウンロード 管理画面からプラグインを追加するか、このへんからダウンロードして、FTPでサーバにアップしてください。 …
「簡単に記事が編集出来る WordPress のプラグイン」をはてなブックマークに追加

Timestamp out of bounds と表示される時

2011年07月26日 web関連php
プログラムを実行しようとすると「Timestamp out of bounds」というエラーが表示されました。 何かと思って調べてみると、どうやらサーバの時間がずれている模様。 なので、以下のようにして解決。 …
「Timestamp out of bounds と表示される時」をはてなブックマークに追加

WordPressでアイキャッチ画像を使う

2012年03月02日 WordPress
基本設定 function.phpに以下を追加 以下を追加することで、WordPressでアイキャッチ画像を使うことが可能になります。 これが設定されていないと、管理画面内の投稿ページにもアイキャッチ関連のボックスは表示されないようです。 [php]add_theme_support( 'post-thumbnails' ); [/php] アイキャッチを表示させる アイキャッチを呼び出すには…
「WordPressでアイキャッチ画像を使う」をはてなブックマークに追加

WordPressの抜粋表示の設定

2014年08月25日 web関連WordPressphp
WordPressの抜粋表示(excerpt)を以下のように動作させたかったので、自作してみました。 抜粋があれば抜粋表示 moreタグがあれば、それに従う 指定文字数より本文文字数が少なければ、そのまま表示 指定文字数より本文文字数が多ければ抜粋表示 コード functions.phpにコピペ。 [php]<?php //WordPress抜粋表…
「WordPressの抜粋表示の設定」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy