[WordPress]固定ページかどうか判断する方法

[WordPress]固定ページかどうか判断する方法

はじめに

WordPressでは、固定ページか投稿かは、投稿タイプを知ることによって判断できます。WordPressでは固定ページは投稿タイプの1つなので、投稿タイプが「page」であれば、固定ページであることがわかります。
投稿タイプは、「is_page()」関数もしくは「get_post_type()」関数を用いることで判断できます。

「is_page()」関数で固定ページかどうか判断する方法

まずはじめに「is_page()」関数を使った方法を説明します。「is_page()」関数は、ページが固定ページであるかどうかをチェックする条件分岐関数です。この関数はオプションのパラメータを受け取り、チェックするページのIDまたはスラッグを指定します。パラメータを指定しない場合は、現在表示されているページをチェックします。

まずIDを使ってページかどうかを判断するには、次のようなコードを使用します。

if ( is_page( 25 ) ) {
    // IDが25のページである場合に実行するコード
}else{
    // IDが25のページでない場合に実行するコード
}

次にスラッグを使ってページかどうかを判断するには、次のコードを使用します。

if ( is_page( 'about-us' ) ) {
    // スラッグ 'about-us' を持つページである場合に実行するコード
}else{
    // スラッグ 'about-us' を持つページでない場合に実行するコード
}

下記のように配列を使用して複数指定することもできます。

if (is_page(array(123, 'about-us', 'contact-us'))) {
  // ID 123 のページである場合、スラッグ "about-us" のページ、
  // またはスラッグ "contact-us" のページである場合に実行するコード
}

最後にパラメータを使わずに現在のページがページかどうかを判断するには、次のようなコードを使用します。

if ( is_page() ) {
    // 現在のページがページである場合に実行するコード
}else{
    // 現在のページがページでない場合に実行するコード
}

「get_post_type()」関数で固定ページかどうか判断する方法

また、「get_post_type()」関数を使してページや投稿の投稿タイプを判別することができます。この関数は、ページや投稿のIDまたはスラッグを受け取り、投稿タイプを文字列として返します

以下は、ページの ID とスラッグを指定して get_post_type() を使用する例です。

$post_type = get_post_type(123);
if ($post_type == 'page') {
  // ID123の投稿がページである場合に実行するコード
}

$post_type = get_post_type('about-us');
if ($post_type == 'page') {
  // "about-us" というスラッグを持つ投稿がページである場合するコード
}

最初の例では、「get_post_type() 」関数を投稿の ID と共に使用しています。これにより、ID が 123 の投稿の投稿タイプが取得されます。もし投稿タイプが “page” であれば、if 文の中のコードが実行されます。
2 番目の例では、「get_post_type()」 関数を投稿のスラッグと一緒に使用しています。これは、”about-us” というスラッグを持つ投稿の投稿タイプを取得するものです。もし投稿タイプが「page」であれば、if文の中のコードが実行されます。
また、if 文の中で「 get_post_type() 」関数を直接使用することも可能で、その場合は最初に投稿タイプを変数に格納する必要はありません。たとえば、以下のようになります。

if (get_post_type(123) == 'page') {
  // ID123の投稿がページである場合に実行するコード
}

この例では、if 文の中で 「get_post_type()」 関数を直接使用して、ID 123 の投稿がページであるかどうかをチェックしています。もしそうなら、if 文の中のコードが実行されます。
また下記のように「get_post_type() 」関数をパラメータなしで使用すれば、現在閲覧しているページや投稿の投稿タイプを取得します。もし投稿タイプが “page” であれば、if 文の中のコードが実行されます。

if (get_post_type() == 'page') {
  // 現在のページが固定ページである場合に実行するコード
}

まとめ

「is_page()」関数は、ページのIDとスラッグを受け取り、特定のページか固定ページであるかどうかを表します。
「get_post_type() 」関数は、固定ページや投稿の投稿タイプを文字列として返します。この関数は、投稿タイプが “page” であるかどうかを調べ、そのページや投稿がページであるかどうかを判断するために使用することができます。
全体として、これらの関数はどちらも WordPress でページや投稿の投稿タイプをチェックするのに便利です。