WordPressのテーマ開発において、標準機能を有効化するために欠かせないのがadd_theme_support関数です。
この関数を適切に使いこなすことで、投稿サムネイルの表示やカスタムロゴの設定など、WordPressが提供する強力な機能をテーマに組み込むことが可能になります。
2026年現在のモダンなWeb制作現場でも、クラシックテーマやハイブリッドテーマの開発において、この関数の重要性は変わりません。
本記事では、add_theme_supportの基本的な使い方から、実戦で役立つ具体的な設定例、さらにブロックエディタ時代における最新の活用方法までを詳しく解説します。
add_theme_support関数の基礎知識
add_theme_supportは、WordPressのコア機能のうち、テーマ側で明示的な宣言が必要な機能を有効化するための関数です。
WordPressはインストールした状態ですべての機能が動くわけではなく、テーマのデザインや設計に合わせて開発者が機能を選択する仕組みになっています。
この関数を使用することで、テーマが必要とする機能をWordPress本体に通知し、管理画面のインターフェースやフロントエンドの出力を最適化できます。
基本的には、テーマの制御を司るfunctions.phpファイル内に記述して使用します。
基本的な構文と記述場所
add_theme_supportの構文は非常にシンプルです。
add_theme_support( string $feature, mixed $args );
第一引数の$featureには有効化したい機能名を指定し、第二引数の$argsにはその機能の詳細なオプションを配列などで指定します。
この関数を呼び出す際には、必ずafter_setup_themeアクションフックを使用することが推奨されています。
テーマが読み込まれた直後の適切なタイミングで処理を実行させるためです。
functions.phpへの記述例
実際にテーマに機能を登録する際の標準的なコードセットを確認してみましょう。
function my_theme_setup() {
// 投稿サムネイル(アイキャッチ画像)を有効にする
add_theme_support( 'post-thumbnails' );
// タイトルタグを自動生成する
add_theme_support( 'title-tag' );
// HTML5のマークアップを有効にする
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
}
add_action( 'after_setup_theme', 'my_theme_setup' );
このように関数をひとまとめにしてフックに登録することで、テーマの初期化時に一括で設定が反映されます。
主要な機能の有効化手順と実例
ここからは、多くのテーマ制作現場で頻繁に使用される具体的な機能について、詳細な設定方法を解説します。
1. 投稿サムネイル(アイキャッチ画像)
記事の顔となるアイキャッチ画像機能を有効化するには、post-thumbnailsを指定します。
これを行わないと、投稿編集画面に「アイキャッチ画像」の設定欄が表示されません。
// すべての投稿タイプでサムネイルを有効化
add_theme_support( 'post-thumbnails' );
// 特定の投稿タイプ(投稿とカスタム投稿タイプ 'news')のみで有効化
add_theme_support( 'post-thumbnails', array( 'post', 'news' ) );
このように配列を渡すことで、特定の投稿タイプに限定して機能を付与することも可能です。
2. タイトルタグの自動出力
以前のWordPressテーマでは、header.phpに直接<title>タグを記述していました。
しかし、現在はadd_theme_support( 'title-tag' )を使用するのが標準的な手法です。
これにより、WordPressがページの構成に応じて最適なタイトルを自動的に生成し、<head>内に出力してくれます。
add_theme_support( 'title-tag' );
SEOプラグインなどとの競合を避け、一貫性のある管理を行うためにも必須の設定と言えます。
3. カスタムロゴの設定
サイトのロゴ画像を管理画面からアップロードし、テーマ内の任意の位置に表示させたい場合に有効化します。
この設定には、ロゴの推奨サイズなどを指定するオプションが含まれます。
add_theme_support( 'custom-logo', array(
'height' => 100,
'width' => 400,
'flex-height' => true,
'flex-width' => true,
'header-text' => array( 'site-title', 'site-description' ),
) );
flex-heightやflex-widthをtrueに設定することで、指定サイズ以外の画像がアップロードされた際の柔軟な対応が可能になります。
4. HTML5マークアップのサポート
WordPressがデフォルトで出力するHTMLタグを、セマンティックなHTML5形式に変換するための設定です。
アクセシビリティやSEOの観点からも、現代のテーマ開発では必須と言えるでしょう。
add_theme_support( 'html5', array(
'comment-list',
'comment-form',
'search-form',
'gallery',
'caption',
'style',
'script'
) );
この設定を有効にすることで、検索フォームなどが最新のHTML規格に準拠した形で出力されるようになります。
ブロックエディタ(Gutenberg)に関連する設定
2026年現在、WordPressの編集体験はブロックエディタが中心となっています。
add_theme_supportは、このエディタの挙動をカスタマイズするためにも活用されます。
全幅・幅広ブロックの有効化
モダンなデザインで多用される「全幅(Full width)」や「幅広(Wide width)」のレイアウトをブロックで選択可能にします。
add_theme_support( 'align-wide' );
これを記述することで、画像ブロックやカバーブロックのツールバーに配置オプションが追加されます。
カスタムカラーパレットの設定
エディタ内でユーザーが選択できる色を、サイトのブランドカラーに限定することができます。
add_theme_support( 'editor-color-palette', array(
array(
'name' => 'メインカラー',
'slug' => 'main-color',
'color' => '#1a73e8',
),
array(
'name' => 'アクセントカラー',
'slug' => 'accent-color',
'color' => '#d93025',
),
) );
この設定を行うことで、投稿者が勝手な色を使用してデザインが崩れるのを防ぐことができます。
ブロック用デフォルトスタイルの適用
WordPressコアが提供するフロントエンド用のブロック用スタイルを、エディタ側でも適用させたい場合に使用します。
add_theme_support( 'wp-block-styles' );
これにより、実際の表示に近い状態で記事の執筆が可能になります。
add_theme_supportの対応機能一覧
現在利用可能な主な機能を一覧表にまとめました。
| 機能名(引数) | 内容 | 主な用途 |
|---|---|---|
post-thumbnails | 投稿サムネイル | アイキャッチ画像の有効化 |
title-tag | タイトルタグ | <title>の自動生成 |
custom-logo | カスタムロゴ | サイトロゴの管理機能 |
html5 | HTML5サポート | セマンティックなHTML出力 |
automatic-feed-links | フィードリンク | RSSフィードの自動生成 |
customize-selective-refresh-widgets | ウィジェット更新 | カスタマイザーでの部分更新 |
align-wide | 幅広・全幅 | ブロックの配置オプション拡張 |
editor-styles | エディタスタイル | 独自CSSをエディタに反映 |
応用:特定の機能がサポートされているか確認する
テーマやプラグインの開発中、特定の機能が有効になっているかを判定したい場合があります。
その際はcurrent_theme_supports()関数を使用します。
if ( current_theme_supports( 'post-thumbnails' ) ) {
// サムネイルが有効な場合の処理
echo '<p>このテーマはアイキャッチ画像をサポートしています。</p>';
}
このテーマはアイキャッチ画像をサポートしています。
この条件分岐を活用することで、テーマの機能状況に合わせた柔軟なテンプレート出力が可能になります。
add_theme_support使用時の注意点
非常に便利な関数ですが、いくつか注意すべきポイントがあります。
1. 実行タイミングを間違えない
after_setup_themeフックの外で実行すると、正しく動作しないことがあります。
特にブロックエディタ関連の設定は、読み込み順序が重要なため、公式の作法を守ることが大切です。
2. theme.jsonとの併用
2026年現在のブロックテーマ開発では、functions.phpでのadd_theme_supportよりも、theme.jsonでの設定が優先される傾向にあります。
ハイブリッドテーマ(クラシックテーマにブロックエディタの機能を一部取り入れたもの)を開発する場合は、どちらで管理すべきかを明確に決めておく必要があります。
一般的に、カラーパレットやフォントサイズなどのスタイル情報はtheme.jsonで管理し、アイキャッチ画像などのシステム的な機能はadd_theme_supportで管理するのがスムーズです。
3. すでに登録されている機能の削除
親テーマで設定されている機能を子テーマで無効化したい場合は、remove_theme_supportを使用します。
function remove_parent_features() {
// 親テーマの投稿サムネイル機能を無効化する
remove_theme_support( 'post-thumbnails' );
}
// 親テーマより後に実行されるよう優先度を低く(数字を大きく)設定
add_action( 'after_setup_theme', 'remove_parent_features', 20 );
これにより、不要な機能を管理画面から隠し、シンプルで使いやすい運用環境を構築できます。
add_theme_supportを最大限に活用するために
WordPressのポテンシャルを引き出すためには、この関数でどのような機能が制御できるのかを網羅的に把握しておくことが近道です。
例えば、custom-headerやcustom-backgroundなど、今回紹介しきれなかった古い機能も存在します。
しかし、最新のWeb標準に合わせたサイト制作を目指すのであれば、まずはtitle-tag、html5、align-wideといった項目を確実に設定することから始めましょう。
また、コードを書く際はメンテナンス性を考慮し、コメントを残しておくことも重要です。
どのコードがどの機能を有効化しているのかが一目で分かれば、チーム開発や数年後のサイト改修時に大きな助けとなります。
まとめ
add_theme_supportは、WordPressテーマに命を吹き込み、標準機能を最適化するための強力なツールです。
投稿サムネイルやタイトルタグ、HTML5サポートといった基本機能から、ブロックエディタのレイアウト制御まで、その用途は多岐にわたります。
適切なアクションフックを用いて記述し、必要に応じてオプション引数を活用することで、ユーザーにとって使いやすい管理画面と、開発者にとって管理しやすいコードベースを両立できます。
2026年のWordPress開発においても、この関数の役割を正しく理解し、サイトの要件に合わせて最適な機能を有効化していくスキルは不可欠です。
本記事で紹介した実例を参考に、あなたのテーマ開発にぜひ役立ててください。
