calendarcodediamondfacebookfingerglobalgoogleplushatenahomepagetopplainpocketrssservicetwitterwordpresshome2searchfoldernext-arrowback-arrowfirst-arrowlast-arrow

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

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

PR
IT/WEB業界への転職なら
Sponsored Link

基本

条件成立時、上の条件でない時、条件が成立しない時の条件が複数あるパターン。条件を増やすときは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 "これは子ページです";
}

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

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テーマ作成の時に覚えておくと便利なテンプレートタグ

functions.php

WordPressのfunctions.phpに書いておくと捗ること

パンくずリスト

WordPressでパンくずリストを出す方法

コメント出力

WordPressにコメントを設置する簡単な方法

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

スポンサード リンク

この記事を書いた人
投稿者:commte

株式会社コムテ代表取締役。2015/8:弊社にてWeb制作スクールを開始。 WebDesign + Web制作 (最新情報 配信)。おっとりした話し方をするおっさん。

URL:西田 鉄平
この後によく読まれている記事

Comments

Leave a Comment

コメントする