WordPressを使っていると、特定のページや投稿タイプに対して条件分岐を行いたいことがよくあります。ここでは、様々なシナリオでの条件分岐のコードを紹介します。
固定ページの判別
まず、現在表示されているページが固定ページかどうかを判別する方法です。
PHP
<?php if(is_page()): ?>
<!-- 固定ページの場合の処理 -->
<?php endif; ?>特定の固定ページの判別
特定の固定ページ(ここでは「menu」)を判別する方法です。
PHP
<?php if(is_page('menu')): ?>
<!-- 固定ページ「menu」の場合の処理 -->
<?php endif; ?>特定の投稿タイプの判別
特定の投稿タイプ(ここでは「topics」)を判別する方法です。
PHP
<?php if(get_post_type() == 'topics'): ?>
<!-- 投稿タイプが「topics」の場合の処理 -->
<?php endif; ?>特定のカスタム投稿タイプのアーカイブページの判別
特定のカスタム投稿タイプ(ここでは「column」)のアーカイブページを判別する方法です。
PHP
<?php if( is_post_type_archive( 'column' ) ) :?>
<!-- カスタム投稿タイプ「column」のアーカイブページの場合の処理 -->
<?php endif; ?>カスタム投稿のカテゴリー一覧ページの判別
特定のタクソノミーとタームを判別する方法です。
PHP
<?php if( is_tax('column_category','food') ):?>
<!-- タクソノミーが「column_category」、タームが「food」の場合の処理 -->
<?php endif; ?>特定の固定ページとその子ページの判別
特定の固定ページ(ここでは「recruit」)とその子ページを判別する方法です。
PHP
<?php if(is_page('recruit') || page_is_ancestor_of('recruit')): ?>
<!-- 固定ページ「recruit」またはその子ページの場合の処理 -->
<?php endif; ?>特定のページとその下層のみを指定する関数
最後に、functions.phpに特定のページとその下層ページを判別する関数を追加する方法です。
PHP
// 特定のページとその下層のみを指定する関数
function page_is_ancestor_of($slug){
global $post;
// 親か判別したい固定ページスラッグからページ情報を取得
$page = get_page_by_path($slug);
$result = false;
if(isset($page)){
foreach ((array)$post->ancestors as $ancestor) {
if($ancestor == $page->ID){
$result = true;
}
}
}
return $result;
}この関数をfunctions.phpに追加することで、特定のページとその下層ページを簡単に判別することができるようになります。
以上が、WordPressで特定のページや投稿タイプを判別するためのコードの紹介です。これらの条件分岐を使うことで、より柔軟にサイトをカスタマイズすることができます。
