WordPressの条件分岐について
WordPressの条件分岐のメモです。
テンプレート階層 の外観図を参考にしています。
if ( is_front_page() && is_home() ) {
// 投稿一覧ページをトップページに設定
} elseif ( is_home() ) {
// 投稿一覧ページ
} elseif ( is_page() ) {
if ( class_exists( 'WooCommerce' ) && is_cart() ) {
// WooCommerceのカートページ
} elseif ( class_exists( 'WooCommerce' ) && is_checkout() ) {
// WooCommerceの支払いページ
} elseif ( class_exists( 'WooCommerce' ) && is_account_page() ) {
// WooCommerceのアカウントページ
} else {
// その他の固定ページ
}
} elseif ( is_single() ) {
if ( 'post' === get_post_type() ) {
// シングルページ
} elseif ( 'post' !== get_post_type() ) {
if ( is_woocommerce() ) {
if ( class_exists( 'WooCommerce' ) && is_product() ) {
// WooCommerceの個別商品ページ
}
} else {
// その他のカスタム投稿タイプのシングルページ
}
} else {
// それ以外のシングルページ
}
} elseif ( is_archive() ) {
if ( is_post_type_archive() ) {
// カスタム投稿タイプ名のアーカイブページ
} elseif ( 'post' === get_post_type() ) {
if ( is_category() ) {
// カテゴリーページ
} elseif ( is_tag() ) {
// タグページ
} elseif ( is_date() ) {
// 日付ページ
} elseif ( is_author() ) {
// 著作者ページ
} elseif ( is_attachment() ) {
// 添付ファイルページ
} else {
// その他の投稿ページのアーカイブページ
}
} elseif ( 'post' !== get_post_type() ) {
if ( is_woocommerce() ) {
if ( class_exists( 'WooCommerce' ) && is_shop() ) {
// WooCommerceの商品一覧ページ
} elseif ( class_exists( 'WooCommerce' ) && is_product_category() ) {
// WooCommerceのカテゴリページ
} elseif ( class_exists( 'WooCommerce' ) && is_product_tag() ) {
// WooCommerceのタグページ
} else {
// WooCommerceのその他のページ
}
} elseif ( is_tax() ) {
// カスタム投稿タイプのカスタムタクソノミーページ
} else {
// その他のカスタム投稿タイプのアーカイブページ
}
} else {
// それ以外のアーカイブページ
}
} elseif ( is_search() ) {
// 検索結果ページ
} elseif ( is_404() ) {
// 404ページ
} else {
// それ以外のページ
}