概要
is_page
関数は、現在のリクエストが特定のページを表示しているかどうかを調べるために使用されます。これは、特定のページに対してカスタムロジックを実装する際によく用いられる関数です。以下は、is_page
関数がよく使用されるシナリオの一部です:
- 特定のページに対して異なるテンプレートを表示する際
- ページごとに異なるスタイルシートやスクリプトを読み込む際
- SEO対策のため、特定のページにメタタグを追加する際
- ユーザーの権限や役割に基づいてページの表示を変更する際
- 特定のページにおけるウィジェットの非表示や表示を制御する際
- 特定のページでカスタムクエリを実行する際
- 404エラーやリダイレクトを特定のページに結びつける際
- 特定の条件下でページコンテンツを変更・フィルタする際
この関数は、WordPressのテーマやプラグインでよく使われます。
構文
is_page( $page = '' );
パラメータ
$page
(オプション):チェックするページのID、スラッグ、またはタイトルを指定します。指定しない場合、現在のページがすべてのページに対してチェックされます。
戻り値
true
:現在のページが指定されたページの場合false
:それ以外の場合
関連する関数
使用可能なバージョン
is_page
関数はWordPress 1.5以降で利用可能です。
コアファイルのパス
この関数は、WordPressのコアファイルで wp-includes/query.php
に含まれています。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | 〇 |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | 〇 |
wp | 〇 |
template_redirect | 〇 |
get_header | |
wp_head | 〇 |
サンプルコード
-
特定のページ用のカスタムテンプレートを使用する
if ( is_page('contact') ) { // contact.php テンプレートを使用 include 'contact.php'; }
このコードは、現在表示されているページが「contact」というスラッグのページであれば、そのテンプレートファイルを使用します。
-
特定のページで異なるスタイルを追加する
function my_custom_styles() { if ( is_page('about') ) { wp_enqueue_style('about-style', get_stylesheet_directory_uri() . '/about.css'); } } add_action('wp_enqueue_scripts', 'my_custom_styles');
このコードは、「about」ページの際に特定のスタイルシートを読み込む例です。
-
特定のページでメタタグを追加する
function add_meta_tags() { if ( is_page('products') ) { echo '<meta name="description" content="Our Products">'; } } add_action('wp_head', 'add_meta_tags');
このコードは、特定のページにメタタグを追加する方法を示しています。
-
404エラーページでリダイレクトを行う
function redirect_on_404() { if ( is_404() && is_page('error') ) { wp_redirect(home_url('/')); exit; } } add_action('template_redirect', 'redirect_on_404');
このコードは、404エラーの際に「error」ページにリダイレクトする例です。
-
カスタムクエリを特定のページで実行する
function custom_query_for_page() { if ( is_page('blog') ) { $query = new WP_Query(array('post_type' => 'post')); // カスタムクエリのループ処理 } } add_action('pre_get_posts', 'custom_query_for_page');
このコードは、「blog」というページでカスタムクエリを実行する方法を示しています。