wp_is_block_theme()


WordPress関数wp_is_block_theme()は、現在のテーマがブロックテーマかどうかを確認するために使用されます。この関数は、テーマがサイトエディター(フルサイト編集)をサポートしているかを判断するのに役立ちます。

構文

wp_is_block_theme();
  • この関数は引数を受け取りません。

戻り値

  • true: 現在のテーマがブロックテーマである場合。
  • false: 現在のテーマがブロックテーマでない場合。

使用例

例 1: 現在のテーマがブロックテーマか確認する

以下のコードは、現在のテーマがブロックテーマかどうかを確認し、結果を出力します。

<?php
if ( wp_is_block_theme() ) {
    echo 'このテーマはブロックテーマです。';
} else {
    echo 'このテーマは従来のテーマです。';
}
?>

例 2: 管理画面での条件付きメッセージの表示

管理画面で現在のテーマに応じて異なるメッセージを表示します。

<?php
add_action( 'admin_notices', function() {
    if ( wp_is_block_theme() ) {
        echo '<div class="notice notice-success"><p>ブロックテーマが有効です。</p></div>';
    } else {
        echo '<div class="notice notice-error"><p>ブロックテーマではありません。</p></div>';
    }
});
?>

例 3: スタイルシートの条件付き読み込み

テーマタイプに応じて異なるスタイルシートを読み込みます。

<?php
add_action( 'wp_enqueue_scripts', function() {
    if ( wp_is_block_theme() ) {
        wp_enqueue_style( 'block-theme-style', get_template_directory_uri() . '/block-style.css' );
    } else {
        wp_enqueue_style( 'classic-theme-style', get_template_directory_uri() . '/classic-style.css' );
    }
});
?>

例 4: 子テーマ用の追加設定

ブロックテーマの場合にのみ特定の設定を適用します。

<?php
if ( wp_is_block_theme() ) {
    add_theme_support( 'block-template-parts' );
}
?>

例 5: テーマ情報のデバッグ

現在のテーマ情報を確認し、ブロックテーマかどうかを出力します。

<?php
$theme = wp_get_theme();
if ( wp_is_block_theme() ) {
    echo '現在のテーマ: ' . $theme->get( 'Name' ) . ' はブロックテーマです。';
} else {
    echo '現在のテーマ: ' . $theme->get( 'Name' ) . ' は従来のテーマです。';
}
?>

注意事項

  • この関数はWordPress 5.9以降で導入されたため、それ以前のバージョンでは使用できません。
  • ブロックテーマの正確な判定にはtheme.jsonファイルが存在する必要があります。

関連機能: