この記事は最後に更新してから1年以上経過しています。

新テーマ「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


お勧め

wp_suspend_cache_addition(2023年6月8日 更新)

bool wp_suspend_cache_addition( [ bool $suspend = null ] )
キャッシュの追加を一時的に停止する。

wp_json_file_decode(2022年1月26日 更新)

mixed wp_json_file_decode( string $filename [ , array $options = array() ] )
JSONファイルをデコードする。

get_metadata_by_mid(2018年12月14日 更新)

object|bool get_metadata_by_mid( string $meta_type, int $meta_id )
IDを指定してメタデータを取得する。

human_time_diff(2019年11月18日 更新)

string human_time_diff( int $from [ , int $to = '' ] )
時間差を'5分'や'2日'のような感覚的な表現で取得する。

get_current_user_id(2013年9月18日 更新)

int get_current_user_id()
現在のログイン済みユーザーのIDを取得抽出する。