WordPressでサイト制作をしているうちに、「トップページだけサイドバーを非表示にしたい」や、「固定ページや個別投稿ページではサイドバーを表示したい」など、そのページごとに処理を変える必要が出てきます。
そんなときは、WordPress条件分岐タグを使って、現在のページを判別し、表示するものを切り替えたほうが、効率的です。
WordPress関連記事
【WordPress】ローカル開発からサーバーへ移行に便利な「Search Replace DB」の使い方
.htaccessでhttpにアクセスされたときに自動でhttpsに「www」のあり・なし統一して301リダイレクトする
WordPressの条件分岐タグでページを判別する
WordPressの投稿記事内に外部URLのOGPを取得してカードを作る
WordPressで取得したタイトルからHTMLタグを削除するthe_title_attribute()
【WordPress】ループ内で取得したパーマリンクやタイトルを変数に入れる
【WordPress】アイキャッチ画像のURLのみ取得して属性やクラスなどを自由にカスタムする
WordPressのループ内でアイキャッチ画像を表示させる
if文で条件分岐をつくる
WordPressの条件分岐タグで判別した結果で出力を変更するには、if文で分岐させます。
if(条件1){ 条件1に当てはまる場合 }elseif(条件2){ 条件2に当てはまる場合 }else{ 条件1にも条件2にも当てはまらない場合 }
フロントページと投稿ページ
フロントページと投稿ページを判別する場合、is_front_page()やis_home()を使用します。
設定 > 表示設定の「ホームページの表示(フロントページの表示)」が、
「最新の投稿」を設定している場合、ホームページ(フロントページ)ではis_front_page()・is_home()の両方とも、trueになります。
is_front_page()
「固定ページ」を設定している場合、ホームページ(フロントページ)ではis_front_page()が、trueになります。
is_home()
「固定ページ」を設定している場合、投稿ページではis_home()が、trueになります。
条件分岐タグの書き方
PHP
if ( is_front_page() && is_home() ) { // デフォルトのフロントページ } elseif ( is_front_page() ) { // 固定ペーシを使ったフロントページ } elseif ( is_home() ) { // 固定ペーシを使った投稿ページ } else { // それ以外 }
シングルページ
is_single($page)
個別投稿のページ(または添付ファイルページ・カスタム投稿タイプの個別ページ)が表示されている場合に、trueになります。
引数には、ID
やスラッグ
、タイトル名
で指定できます。
また、複数指定したい場合は、それらを配列で指定することもできます。
PHP
is_single(); // 個別投稿ページ is_single( '5' ); // 記事IDが5 is_single( 'Q&A' ); // タイトル名がQ&A is_single( 'fa' ); // スラッグがfa is_single( array( '5', 'Q&A' ) ); // 記事IDが5 もしくは、タイトル名がQ&A
is_page($page)
固定ページが表示されている場合に、trueになります。
引数には、ID
やスラッグ
、タイトル名
で指定できます。
また、複数指定したい場合は、それらを配列で指定することもできます。
PHP
is_page(); // 固定ページ is_page( '5' ); // 固定ページのIDが5 is_page( 'Q&A' ); // タイトル名がQ&A is_page( 'fa' ); // スラッグがfa is_page( array( '5', 'Q&A' ) ); // 固定ページのIDが7 もしくは、タイトル名がQ&A // 固定ページが子ページかどうか判別したい場合 if ( is_page() && $post->post_parent > 0 ) {}
is_attachment()
投稿ページまたは固定ページの添付ファイルが表示されている場合に、trueになります。
PHP
is_attachment(); // 添付ファイルが表示されている場合
is_singular($post_types)
is_single()、is_page()、is_attachment()のいずれかがtrueである場合に、trueになります。
引数には、投稿タイプ
で指定できます。
また、複数指定したい場合は、それらを配列で指定することもできます。
PHP
is_singular(); // 個別の投稿 is_singular( 'post' ); // デフォルトの投稿タイプ is_singular( 'fa' ); // カスタム投稿タイプ(fa) is_singular( array( 'fa', 'news' ) ); // カスタム投稿タイプのfa もしくは、news
アーカイブページ
is_post_type_archive($post_types)
引数の投稿タイプのアーカイブページの場合に、trueになります。
引数がない場合、カスタム投稿タイプのアーカイブの場合に、trueになります。
PHP
is_post_type_archive(); // カスタム投稿タイプのアーカイブ is_post_type_archive( 'news' ); // カスタム投稿タイプ(news)のアーカイブ
is_category($category)
カテゴリーのアーカイブページが表示されている場合に、trueになります。
引数には、ID
やスラッグ
、カテゴリー名
で指定できます。
また、複数指定したい場合は、それらを配列で指定することもできます。
PHP
is_category(); // カテゴリーのアーカイブページ is_category( '5' ); // カテゴリーIDが5 is_category( '商品' ); // カテゴリー名が商品 is_category( 'items' ); // スラッグがitems is_category( array( '5', '商品' ) ); // カテゴリーIDが5 もしくは、カテゴリー名が商品
is_tag($tag)
タグのアーカイブページが表示されている場合に、trueになります。
引数には、ID
やスラッグ
、タグ名
で指定できます。
また、複数指定したい場合は、それらを配列で指定することもできます。
PHP
is_tag(); // タグのアーカイブページ is_tag( '5' ); // タグIDが5 is_tag( 'シューズ' ); // タグ名がシューズ is_tag( 'shoes' ); // スラッグがshoes is_tag( array( '5', 'シューズ' ) ); // タグIDが5 もしくは、タグ名がシューズ
is_tax($taxonomy, $term)
タクソノミーのアーカイブページが表示されている場合に、trueになります。
第一引数には、タクソノミーのスラッグ
で指定できます。
第二引数には、ID
やスラッグ
、ターム名
で指定できます。
また、どちらも複数指定したい場合は、それらを配列で指定することもできます。
PHP
is_tax(); // タクソノミーのアーカイブページ is_tax( 'news' ); // タクソノミーのスラッグがnews is_tax( 'news', '5' ); // タクソノミーのスラッグがnewsで、タームIDが5 is_tax( 'news', 'news-cat' ); // タクソノミーのスラッグがnewsで、タームのスラッグがnews-cat
is_author($author)
投稿者のアーカイブページが表示されている場合に、trueになります。
引数には、ID
や投稿者名
で指定できます。
PHP
is_author(); // 投稿者のアーカイブページが表示されている場合 is_author( '2' ); // 投稿者IDが2の場合 is_author( 'beyo' ); // 投稿者名がbeyoの場合
is_year()
年別アーカイブページが表示されている場合に、trueになります。
PHP
is_year(); // 年別アーカイブページが表示されている場合
is_month()
月別アーカイブページが表示されている場合に、trueになります。
PHP
is_month(); // 月別アーカイブページが表示されている場合
is_date()
年別や月別など、日付に関するアーカイブページが表示されている場合に、trueになります。
PHP
is_date(); // 日付に関するアーカイブページが表示されている場合
is_archive()
各アーカイブページが表示されている場合に、trueになります。
アーカイブページにはカテゴリー、タグ、作成者、日付別、カスタム投稿タイプのアーカイブ、タクソノミー項目が対象になります。
PHP
is_archive() // アーカイブページが表示されている場合
検索結果と404ページ
is_search()
検索結果のページが表示されている場合に、trueになります。
PHP
is_search() // 検索結果のページが表示されている場合
is_404()
404エラーが表示されている場合に、trueになります。
PHP
is_404() // 404エラーが表示されている場合
モバイル(スマホ・タブレット)
wp_is_mobile()
モバイル(スマホ・タブレット)の場合に、trueになります。
PHP
wp_is_mobile() // モバイル(スマホ・タブレット)の場合
コメント