新テーマ「Twenty Twenty-Three」にはfunctions.phpがない

説明

WordPress 6.1に同梱された新テーマ「Twenty Twenty-Three」を見てみると、そこには見慣れたfunctions.phpがない。Full Site Editing(FSE)対応テーマってこんな感じなのかと思いつつ、テーマの設定がどうなっているのか調べてみた。

ブロックベースのテーマ

テーマを「Twenty Twenty-Three」に切り替え、出力された内容を見てみると、サイト共通のfeedリンクが出力されている。このことからテーマに'automatic-feed-links'が適用されていることがわかったので、WordPressのソースコードを検索すると、wp-includes/theme.php の中に「_add_default_theme_supports」というプライベート関数が見つかった。

function _add_default_theme_supports() {
	if ( ! wp_is_block_theme() ) {
		return;
	}

	add_theme_support( 'post-thumbnails' );
	add_theme_support( 'responsive-embeds' );
	add_theme_support( 'editor-styles' );
	/*
	 * Makes block themes support HTML5 by default for the comment block and search form
	 * (which use default template functions) and `` and `` shortcodes.
	 * Other blocks contain their own HTML5 markup.
	 */
	add_theme_support( 'html5', array( 'comment-form', 'comment-list', 'search-form', 'gallery', 'caption', 'style', 'script' ) );
	add_theme_support( 'automatic-feed-links' );

	add_filter( 'should_load_separate_core_block_assets', '__return_true' );
}

この関数はバージョン5.9.0で追加されたもので、setup_themeアクションのコールバック関数として定義されており、従来からテーマの設定を行う際に利用しているafter_setup_themeアクションより先に実行するものだった。

_add_default_theme_supports関数の中身を見てみると、 wp_is_block_theme関数によりテーマがブロックベースのテーマなのか判定し、ブロックベースのテーマでない場合はなにもしない。ブロックベースのテーマの場合は、 add_theme_support関数によりいくつかの機能を追加している。これらの機能に過不足があった場合は、テーマのfunctions.phpに記述することになるようだ。


最終更新 : 2022年10月06日 12:56


お勧め

get_block_editor_settings(2021年8月17日 更新)

array get_block_editor_settings( array $custom_settings, WP_Block_Editor_Context $block_editor_context )
ブロックエディター設定内容を取得する。

urldecode_deep(2019年3月13日 更新)

mixed urldecode_deep( mixed $value )
変数内の文字列についてURLデコード処理を行う。

user_can(2018年5月27日 更新)

bool user_can( mixed $user, string $capability )
ユーザの権限を調べる。

get_locale(2019年1月15日 更新)

string get_locale( )
現在のロケール情報('ja'や'en_US'など)を取得する。

get_comment_time(2023年4月3日 更新)

string get_comment_time( [ string $format = '' [ , bool $gmt = false [ , bool $translate = true [ , int | WP_Comment $comment_id = 0 ] ] ] ] )
コメント投稿日時を取得する。