WordPressのカスタマイズに便利な条件分岐タグ11選

プログラミング
DESIGNER

条件分岐とは、プログラムが稼働する条件を指定するための記述のこと。条件分岐タグを使えば、スクリプトの条件が満たされた場合だけ、コードのスクリプトにおけるアクションを呼び出せます。

今回、WordPressでポピュラーな条件分岐タグをご紹介します。

カスタム分類とは

分類とは、投稿(またはリンク、カスタム投稿タイプ)をグループ化するための方法です。分類内のさまざまなグループ名を「項目」 と呼びます。

WordPressにおいて、もっとも一般的な分類は4つあります。

  1. カテゴリー
  2. タグ
  3. リンクカテゴリー
  4. 投稿フォーマット

カスタムで分類を作成できます。音楽のレビューサイトに例えると、「ジャンル」という分類を作成し、「ロック」「ジャズ」などのジャンルを作成するといったようなことです。

条件分岐タグの一覧

1. is_home()

is_home()は、ブログのメインページを表示するかの条件分岐です。通常、WordPressがホームページを「投稿」のページにするのに、ブログを別ページにするWebサイトが多いです。

したがって、「Blog」というページを「投稿」のページにすると、is_home()は下記の通りです。

<?php

// If this the Posts page, display a message.
if ( is_home() ): 

echo '<h2>Thanks for visiting our blog!</h2>';

endif;

?>

2. is_front_page()

is_front_page()を通して、サイトのフロントページが表示中かどうかを判定する条件分岐です。固定ページをトップページにした場合にこのスクリプトを記述すると、ホームページを呼び出せます。

<?php
// If this is the home page, show a special message.
if ( is_front_page() ) { ?>


<h1>Welcome</h1>

<?php 
// Otherwise, show the page title.
} else { ?>

<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>

<?php } ?>

3. is_single()および4. is_page()

is_single()では、固定ページかどうかを判断します。一方では、is_page()では、ブログだけではなく、固定ページかどうかを判断するタグです。is_single()と is_page()の双方は、同時に使う場合が多いです。

<?php

// Target all posts.
if ( is_single() ):

echo 'You are on a single post.';

endif;

// Target all pages.
if ( is_page() ): 

echo 'This is a page';

endif; ?>

これらのタグを使い、IDかスラッグを入れることにより、固定の投稿、またはページを呼び出せます。

<?php

// Target About Us
if ( is_page( 'about-us' ) ): ?>

<a href="#"><img src="images/call-to-action.png" alt="See Our Products"></a>

<?php endif; ?>

配列を使うことにより、複数のコンテンツを呼び出せます。

<?php

// Target About Us and Contact Us pages.
if ( is_page( array('about-us', 'contact-us') ) ): ?>

<a href="#"><img src="images/call-to-action.png" alt="See Our Products"></a>

<?php endif; ?>

4. is_tax()

is_tax()は、カスタムで分類されたアーカイブインデックスページを呼び出せる条件分岐タグです。

ブログの投稿の各ジャンルを分類したら、下記のスクリプトはユーザーが各ジャンルのアーカイブインデックスページにたどり着いた時点で呼び出せます。

<?php

// Display a message on our Genre archive pages.
if (is_tax('genre','rock','hip-hop','jazz') ):

echo '<h2>This is a genre archive. Enjoy!</h2>';

endif; ?>

5. is_page_template()

is_page_template()とは、任意のページのテンプレートであるかどうかを判断する条件分岐タグです。そして、固定ページで特定のページテンプレートを使っているかどうかを判断します。任意のページとは、WordPressにおける、ユーザーが新規で制作した固定ページ以外のページのことです。もしくは、投稿や、アーカイブインデックスページなどのページです。

<?php

// Add a search form to the Services page template.
if (is_page_template('services.php') ):

?>

<?php get_search_form(); ?>

<?php endif; ?>

6. (is_category()): / (in_category(‘slug’)):

is_category()(in_category(‘slug’)を使う場合、カテゴリーアーカイブが表示されているかを判断できます。

is_category();
// 任意のカテゴリーアーカイブが表示されているとき

is_category('9');
// カテゴリー ID が 9 のアーカイブが表示されているとき

is_category('Stinky Cheeses');
// カテゴリー名 "Stinky Cheeses" のアーカイブが表示されているとき

is_category('blue-cheese');
// カテゴリースラッグ "blue-cheese" のアーカイブが表示されているとき

is_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) );
// カテゴリー ID が 9、スラッグが "blue-cheese"、カテゴリー名が "Stinky Cheeses"、のいずれかのアーカイブが表示されているとき。

出典WordPress Codex

7. (is_paged()):

(is_paged()とは、「次のページ」「前のページ」など、複数にわたるページの 2ページ目以降を判断する条件分岐タグのことです。

<?php is_paged(); ?>

8. (is_sticky()):

(is_sticky()という条件分岐タグでは、投稿の「この投稿をフロントページに固定」というチェックボックスがチェックされているかを判断します。

<?php is_sticky($post_ID); ?>

9. (is_tag()):

(is_tag()とは、指定された投稿タグのアーカイブページが表示されている場合に使う条件分岐タグです。trueかfalseを返します。

<?php if ( is_tag($tag) ) /* 処理をする */; ?>

10. (is_attachment()):

(is_attachment()とは、添付が表示されているかどうかをチェックするタグです。添付とは、アップロードユーティリティーからアップロードされたイメージや他のファイルを指します。

<?php is_attachment(); ?>

11. has_term()

has_term()とは、現在の投稿が指定の項目を持つかを判断する条件分岐タグです。特定の画像をタグによって投稿に追加したい場合は役に立つタグです。

<?php

// Show an image for the Rock genre.
if (has_term('rock','genre') ): ?>

<img src="/images/rock-and-roll.gif" alt="Rock and Roll, Dude!">

<?php endif; ?>

カスタマイズ投稿のタイプを追加する方法

カスタマイズ投稿を追加するには、メニューから「ダッシュボード>外観>テーマ編集」という階層を通し、「functions.php」を開いてください。

そうしたら、下記のスクリプトを移転してください。

// カスタム投稿タイプの追加
add_action( ‘init’, ‘create_post_type’ );
function create_post_type() {
register_post_type( ‘news’, // 投稿タイプ名の定義
array(
‘labels’ => array(
‘name’ => __( ‘新着情報’ ), // 表示する投稿タイプ名
‘singular_name’ => __( ‘新着情報’ )
),
‘public’ => true,
‘menu_position’ =>5,
)
);
}

「functions.php」を更新すると、ダッシュボードに「投稿」とは別で、「新着情報」という項目が出てきています。

まとめ

条件分岐タグは、WordPressにおける機能を最適化するには非常に重要であるため、今後のWeb開発で条件分岐タグを使ってみましょう。

(翻訳:Jordan Colston)

SHARE

  • 広告主募集
  • ライター・編集者募集
  • WorkshipSPACE
週1〜3 リモートワーク 土日のみでも案件が見つかる!
Workship