MENU

add_theme_support()

add_theme_support() は、WordPress のテーマに特定の機能を追加するための関数です。

この関数を使うことで、テーマにカスタムロゴ、アイキャッチ画像(サムネイル)、HTML5のマークアップサポートなどを有効にできます。テーマ開発の際に重要な関数であり、functions.php に記述することで機能を拡張できます。

目次

機能の説明

add_theme_support() は、テーマに特定の機能を追加するための WordPress のテンプレートタグです。この関数を使うことで、以下のような機能をテーマに追加できます。

主な用途

  • アイキャッチ画像(サムネイル)を有効化
  • カスタムロゴの追加
  • カスタム背景やカスタムヘッダーの設定
  • HTML5 マークアップのサポート
  • エディターのカラーパレットやスタイルを追加

シンプルなコード例

function my_theme_setup() {
    add_theme_support('post-thumbnails');
}
add_action('after_setup_theme', 'my_theme_setup');
  • 'post-thumbnails':アイキャッチ画像(サムネイル)を有効化
  • after_setup_theme フック内で実行することで、適切なタイミングで機能を追加

このコードを追加すると、投稿やページでアイキャッチ画像を設定できるようになります。

使い方の説明

アイキャッチ画像(サムネイル)を有効化

function my_theme_setup() {
    add_theme_support('post-thumbnails');
}
add_action('after_setup_theme', 'my_theme_setup');

投稿やカスタム投稿タイプでアイキャッチ画像を利用する場合、これを有効化する必要があります。

カスタムロゴを追加

function my_theme_setup() {
    add_theme_support('custom-logo', array(
        'height'      => 100,
        'width'       => 400,
        'flex-height' => true,
        'flex-width'  => true,
    ));
}
add_action('after_setup_theme', 'my_theme_setup');

管理画面の「外観」→「カスタマイズ」からロゴを設定できるようになります。

カスタム背景を追加

function my_theme_setup() {
    add_theme_support('custom-background', array(
        'default-color' => 'ffffff',
        'default-image' => '',
    ));
}
add_action('after_setup_theme', 'my_theme_setup');

背景色や背景画像をカスタマイズ可能になります。

HTML5 マークアップのサポート

function my_theme_setup() {
    add_theme_support('html5', array('search-form', 'comment-form', 'comment-list', 'gallery', 'caption'));
}
add_action('after_setup_theme', 'my_theme_setup');

フォームやコメントリストなどの HTML 出力が、よりクリーンでモダンなマークアップに変更されます。

一緒に使うことが多い関連タグ

remove_theme_support()

特定の機能を無効化する場合に使用します。

function my_theme_remove_support() {
    remove_theme_support('post-thumbnails');
}
add_action('after_setup_theme', 'my_theme_remove_support');


post-thumbnails のサポートを削除します。

set_post_thumbnail_size()

デフォルトのサムネイルサイズを設定する場合に使用します。

function my_theme_setup() {
    add_theme_support('post-thumbnails');
    set_post_thumbnail_size(150, 150, true);
}
add_action('after_setup_theme', 'my_theme_setup');


サムネイルのデフォルトサイズを 150x150px に設定(true はトリミングを意味します)。

追加情報で取得したい場合

テーマのサポート情報を確認する

current_theme_supports() を使うと、指定した機能が有効かどうかを確認できます。

if (current_theme_supports('post-thumbnails')) {
    echo 'このテーマはアイキャッチ画像をサポートしています。';
}

想定されるトラブル

機能が反映されない

解決方法

  • add_theme_support()after_setup_theme フック内で実行しているか確認する
  • サポートを追加した機能が管理画面で有効になっているか確認する

サムネイルが表示されない

解決方法

  • the_post_thumbnail() を適切な場所に記述しているか確認
  • set_post_thumbnail_size() で適切なサイズを指定しているか確認
  • サムネイル画像が適用されているか管理画面でチェック

Q&A

add_theme_support() は子テーマでも使えますか?

はい、子テーマの functions.phpadd_theme_support() を使うことができます。ただし、親テーマで remove_theme_support() されている場合は注意が必要です。

アイキャッチ画像を投稿だけでなく、固定ページにも適用できますか?

はい、add_theme_support('post-thumbnails', array('post', 'page')); を指定することで可能です。

add_theme_support()init で実行するとエラーが出ます。なぜですか?

init ではなく after_setup_theme で実行する必要があります。init のタイミングではテーマのセットアップが完了していないためです。

まとめ

add_theme_support() は、WordPress テーマにアイキャッチ画像、カスタムロゴ、カスタム背景、HTML5 サポートなどの機能を追加するための重要な関数です。

after_setup_theme フックを使って適切なタイミングで実行することが推奨されます。テーマの拡張に欠かせないため、テーマ開発者にとって必須の関数です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次