is_page()
は、 現在表示されているページが「固定ページ」かどうかを判定 するためのテンプレートタグです。特定のページかどうかを ID、スラッグ、またはページ名 でチェックすることもできます。
機能の説明
is_page()
は、 現在のページが「固定ページ」かどうか を真偽値(true
/false
)で返します。- パラメータを渡すことで、 特定の固定ページの判定 も可能です。
- フロントページ や カスタムテンプレート での条件分岐に使われます。
シンプルなコード例
if ( is_page() ) {
echo 'これは固定ページです';
}
上記のコードでは、 固定ページであれば「これは固定ページです」という文字列を表示 します。
使い方の解説
is_page()
は、 テンプレートファイル内で条件分岐 によく使われます(例:header.php
やindex.php
)。- 引数を指定しなければ すべての固定ページに対応 しますが、引数にIDやスラッグ、ページ名を指定することで 特定のページを判定 することもできます。
使用例
if ( is_page(42) ) {
echo 'このページはID 42の固定ページです';
} elseif ( is_page('about') ) {
echo 'このページは「about」というスラッグの固定ページです';
} elseif ( is_page(array(42, 'about', 'contact')) ) {
echo '指定されたIDまたはスラッグのページのいずれかです';
} else {
echo 'これは固定ページではありません';
}
is_page(42)
: IDが42のページを判定します。is_page('about')
: スラッグが「about」のページを判定します。is_page(array(42, 'about', 'contact'))
: IDまたはスラッグが指定されたいずれかのページに一致した場合にtrue
を返します。- 上記のコードでは、 複数の条件を使って異なる出力を行う例 です。
一緒に使うことが多い関連タグ
is_home()
is_home()
は、 フロントページがブログ投稿の一覧ページかどうかを判定 するタグです。
is_page()
と組み合わせることで、 固定ページかブログ一覧ページか を条件分岐できます。
if ( is_home() ) {
echo 'これはホームページ(ブログ一覧ページ)です';
} elseif ( is_page() ) {
echo 'これは固定ページです';
}
is_home()
でブログ一覧かどうかを判定し、 そうでなければ固定ページかを判定 しています。
is_front_page()
is_front_page()
は、 サイトのフロントページ(トップページ)が現在表示されているかを判定 します。
is_page()
と一緒に使うことで、 フロントページ用の条件分岐 が可能です。
if ( is_front_page() && is_page('home') ) {
echo 'これはホームページの固定ページです';
}
is_front_page()
と is_page()
の組み合わせで、 トップページが特定の固定ページかどうか を判定しています。
追加情報を取得したい場合
get_the_title()
でページタイトルを取得
is_page()
を使用した条件分岐内で、 get_the_title()
を使うことで 固定ページのタイトル を取得できます。
if ( is_page() ) {
echo 'このページのタイトルは: ' . get_the_title();
}
get_the_title()
で 現在の固定ページのタイトル を表示します。
出力できる情報
- title: ページタイトル
- ID: 固定ページのID
想定されるトラブル
is_page()
がfalse
を返す
is_page()
が使用される場所が間違っている可能性があります(例: 投稿ページで実行)。- URLのパーマリンクが正しく設定されていない 場合もあります。
解決方法
is_page()
が実行される場所 を確認し、適切なテンプレートファイル内に配置する。- WordPressの管理画面から パーマリンク設定をリフレッシュ する。
特定のページが判定されない
- IDやスラッグが間違っている可能性があります。
- ページの スラッグやIDの変更 による影響も考えられます。
解決方法
- 管理画面で 正確なページIDやスラッグ を確認する。
- 使用しているキャッシュが原因の場合は キャッシュをクリア する。
Q&A
まとめ
is_page()
は、 現在のページが固定ページかどうかを判定する便利なテンプレートタグ です。特定のページをIDやスラッグで判定することもでき、is_home()
や is_front_page()
と組み合わせることで、 高度な条件分岐 を行えます。
カスタマイズ例
1