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


ピックアップ記事

表示中ページの条件分岐

2011年11月21日 WordPress
条件分岐一覧 is_front_page()トップページかどうか。 is_home()投稿ページ(固定ページを設定していなければトップページ)かどうか。 is_single()個別記事かどうか。カッコにID、タイトル、スラッグを入れて判定できる。 is_page()ページかどうか。カッコにID、タイトル、スラッグを入れて判定できる。 is_singular()個別記事でもページ…
「表示中ページの条件分岐」をはてなブックマークに追加

WordPressのオリジナルテーマのサムネイル作成

2013年11月06日 web関連WordPress
WordPressでオリジナルのテーマを作る時は、テーマ名などはstyle.css内にコメントで設定。 管理画面の外観>テーマのページに表示される、個々のテーマのサムネイル画像は、ファイル名「screenshot」、形式はPNG/JPEG/GIFのどれかにして、サイズは 300×225pxで作成。 http://wordpress.nyamuh.com/cont/base/base.htm…
「WordPressのオリジナルテーマのサムネイル作成」をはてなブックマークに追加

WordPress のWP-DBManager プラグインで自動的にデータベースのバックアップ

2012年01月28日 WordPress
初期設定 まずは、WP-DBManagerをダウンロードし、プラグインフォルダに入れたら、管理画面上から有効化します。 すると管理画面のメニューに「Database」というメニューが追加されるので、その中の「Backup DB」を開きます。 そこに英語で「.htaccess」関係の警告が出てると思うので、指示の通りの場所にある「htaccess.txt」を「.htaccess」にリネームして…
「WordPress のWP-DBManager プラグインで自動的にデータベースのバックアップ」をはてなブックマークに追加

WordPressで記事に画像投稿する際に、自動でクラス名をつける

2013年10月09日 web関連WordPressphp
記事内の画像をいい感じのエフェクトをつけて拡大表示させるWordPressのプラグイン「Easy FancyBox」というのを導入したのですが、挿入されたaタグやimgタグに固有のクラス名がないので、CSSで調整しづらかったので、リンク付きの画像を挿入したい際に自動でclass名を追加するようにしました。 imgタグにclassを追加する場合とaタグに追加する場合を分けて書きます。 挿…
「WordPressで記事に画像投稿する際に、自動でクラス名をつける」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy