よく使うWordPressのif文(条件分岐)まとめ

TwitterFacebookHatena
  • 公開:2018-3-19
  • 更新:2023-10-26
  • 文章量:2877
  • WordPress

TL;DR

よく使う WordPress の if(条件分岐 / Conditional Tag)。使用頻度が高いものを書いてます。

基本

条件成立時、上の条件でない時、条件が成立しない時の条件が複数あるパターン。条件を増やすときは elseif を増やし、条件が一つだけのときは、elseif と else を省略する。

<?php if() : ?>
// 条件成立時
<?php elseif () :?>
// 上の条件でない時
<?php else : ?>
// どの条件も成立しない時
<?php endif; ?>

メインページ

<?php if ( is_home() || is_front_page() ) : ?>
// ホームの時。管理画面でホーム表示を固定ページにしたときも適用される
<?php else : ?>
// ホームでない時
<?php endif; ?>

ブログとカスタムポストの投稿ページを分岐させる

サイドバーで、ブログやカスタムポスト(ニュースなど)の表示を分岐させたいとき。

<?php if(is_singular( 'post' )) : ?>
// single.php 表示
<?php elseif (is_singular( 'news' )) :?>
// single-news.php 表示
<?php else : ?>
<?php endif; ?>

個別投稿(シングル)ページ

<?php if( is_single()) : ?>
<?php else : ?>
<?php endif; ?>

固定ページ

以下の例はコンタクト(contact)とアクセス(access)のスラッグ名で固定ページを分岐。

<?php if(is_page('contact')) : ?>
  contactページの時、出力
<?php elseif (is_page('access')) :?>
  accessページの時、出力
<?php else : ?>
  その他
<?php endif; ?>

固定ページの子ページか判別

if ( is_page() && $post->post_parent > 0 ) {
    echo "これは子ページです";
}

2 ページ目以降

is_page()は固定ページか判定、is_paged()は 2 ページ目以降か判定。

<?php if( is_paged()) : ?>
<?php else : ?>
<?php endif; ?>

ページテンプレート

template というディレクトリに作成したカスタムテンプレート contact.php を判別。ディレクトリを含めて書く。ページテンプレート内部はページ上部に「Template Name: contact」と記載されてある。

<?php if( is_page_template(‘template/contact.php')) : ?>
<?php else : ?>
<?php endif; ?>

モバイル

<?php if ( wp_is_mobile() ) : ?>
// mobile
<?php else: ?>
// pc
<?php endif; ?>

IE 判別

グローバル変数名(global ...)で呼び出した後に分岐させます。

<?php
global $is_IE;
if ( $is_IE ) {
// IE
}
?>

Chrome 判別

<?php
global $is_chrome;
if ( $is_chrome ) {
// Chrome
}
?>

Safari 判別

<?php
global $is_safari;
if ( $is_safari ) {
// Safari
}
?>

iPhone の Safari 判別

<?php
global $is_iphone;
if ( $is_iphone ) {
// iphone safari
}
?>

カテゴリページ

<?php if( is_category()) : ?>
<?php else : ?>
<?php endif; ?>

タグページ

<?php if( is_tag()) : ?>
<?php else : ?>
<?php endif; ?>

作成者「taro」のページ

<?php if( is_author(’taro')) : ?>
<?php else : ?>
<?php endif; ?>

検索結果

<?php if( is_search()) : ?>
<?php else : ?>
<?php endif; ?>

Not Found

<?php if( is_404()) : ?>
<?php else : ?>
<?php endif; ?>

functions.php での条件分岐

add_action( 'loop_start', 'add_to_single_posts' );
function add_to_single_posts() {
if ( is_single('post') ) {
echo'xxxx';
    }
}

条件分岐タグ - WordPress Codex 日本語版

よく使う論理演算子

複数(条件1 or 条件2)

<?php if ( 条件1 || 条件2 ) : ?>
<?php endif; ?>

複数(条件1 and 条件2)

<?php if ( 条件1 && 条件2 ) : ?>
<?php endif; ?>

複数(条件1 等しい 条件2)

<?php if ( 条件1 == 条件2 ) : ?>
<?php endif; ?>

複数(条件1 等しくない 条件2)

<?php if ( 条件1 !== 条件2 ) : ?>
<?php endif; ?>

複数(条件1ではない)

<?php if ( !条件1 ) : ?>
<?php endif; ?>

以上、WordPress の条件分岐でした。

よく使うWordPressのif文(条件分岐)まとめ