よく使うWordPressのif文(条件分岐)まとめ
よく使うWordPressのif(条件分岐 / Conditional Tag)。使用頻度が高いものを書いてます。
エンジニア速報は Twitter の@commteで配信しています。
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 "これは子ページです"; }
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'; } }
よく使う論理演算子
複数(条件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をコマンドでインストールする
- [開発環境] Vagrant+Virturlbox+VCCWの使い方
- [雛形] WordPressのif文(条件分岐)
- [雛形] 便利なテンプレートタグ
- [構築] functions.phpに書いておくべきこと
- [構築] パンくずリストを出す方法
- [構築] コメントを設置する簡単な方法
- [管理画面] プラグインの自動更新通知メールを停止させる
- [管理画面] 管理画面のユーザーページに項目を追加する
- [管理画面] カスタムポストを追加する
- [翻訳] 多言語サイトを作るプラグイン「bogo」の使い方
- [フォーム] 「MW WP Form」の使い方と住所自動入力
- [関連記事] プラグインを使わずにWordPressで関連記事を出す方法
- [SEO] タイトルのカスタマイズ
- [pre_get_posts] カテゴリページや検索結果の表示を調整
以上、WordPressの条件分岐でした。
スポンサード リンク
関連記事
- WordPressプラグインの自動更新通知メールを停止させる
- WordPress:pre_get_postsを用いてカテゴリページや検索結果の表示を調整する
- WordPress:タイトルを自在にカスタマイズする方法
- プラグインを使わずにWordPressで関連記事を出す方法
- WordPressプラグイン「MW WP Form」の使い方と住所自動入力(郵便番号で動かない場合)
- WordPressでカスタムポストを追加するシンプルな方法
- WordPress管理画面のユーザーページに項目を追加する
- WordPressでパンくずリストを出す方法
- WordPressテーマ作成の時に覚えておくと便利なテンプレートタグ
- WordPressのfunctions.phpに書いておくと捗ること
Leave a Comment