1. HOME
  2. »
  3. プログラミング・Web
  4. »
  5. WordPress
  6. »
  7. WordPress管理画面のテーマカスタマイザーに独自の項目を追加。

WordPress管理画面のテーマカスタマイザーに独自の項目を追加。

WordPressみたいに私自身の人生もカスタムできたらいいのに。@It_is_Rです。

WordPressのカスタマイズは、公開しているサイトだけではありません。
管理画面をカスタマイズすることで、サイトのカスタマイズ(色の変更や、画像の変更など)がとても楽にできるようになります。

今回はテーマカスタマイザーを自分好みにアレンジする方法を紹介します。

目次
  1. テーマカスタマイザーとは
  2. テーマカスタマイザーの項目について
  3. デフォルトの項目を追加
  4. オリジナルの項目を追加する
  5. 既存の項目に設定を追加
  6. まとめ

テーマカスタマイザーとは

まず、テーマカスタマイザーと聞いてもピンとこない方もいるかもしれません。
テーマカスタマイザーは、WordPressのテーマカスタマイズ画面です。
WordPressにログインし、「外観」 → 「カスタマイズ」と進んだ先にある画面です。
wordpress

こちらがその画面です。
wordpress

テーマカスタマイザーの項目について

テーマカスタマイザーの項目は、使っているテーマによって異なります。
また同じテーマを使っていても、カスタマイズによって項目を変更している場合もあります。

こちらは追加した項目を省いた状態の画面です。
wordpress

デフォルトの項目を追加

まずは、WordPressにデフォルトで備わっている機能を追加していきます。

ウィジェット項目を追加

ウィジェット項目を作成するには、以下のソースをfunctions.phpに追加します。
widgets_initフックを使用します。

functions.php

function mytheme_widgets_init() {
	register_sidebar( array(
		'name' => 'ウィジェット',
		'id' => 'sidebar',
	) );
}
add_action( 'widgets_init', 'mytheme_widgets_init' );

ウィジェット項目が追加されました。
wordpress

色、ヘッダー画像の項目を追加

色、ヘッダー画像の項目を追加するには、カスタムヘッダーサポートを有効にする必要があります。

functions.php

add_theme_support( 'custom-header' );

「色」、「ヘッダー画像」の項目が表示されました。
wordpress

ただ、このままでは色やヘッダー画像を設定した場合でも、反映されません。
反映させるにはテーマをそれなりに変更しなければなりません。

その方法は、また別の記事で紹介します。

背景画像の項目を追加

背景画像の項目を追加するには、カスタム背景のサポートを有効にします。

functions.php

add_theme_support( 'custom-background' );

「背景画像」の項目が有効になりました。
wordpress

オリジナルの項目を追加する

オリジナルの項目を追加するには、add_section(), add_setting(), add_control()を使います。

今回は例として、パンくずリストの区切り文字を設定する項目を作成してみました。

functions.php

function mytheme_register ( $wp_customize ) {

	//パンくずリスト項目を作成
	$wp_customize->add_section( 'mytheme_breadcrumb' , array(
		'title' => 'パンくずリスト',
	) );

	//パンくずリストの設定(データベースに設定を追加)
	$wp_customize->add_setting( 'mytheme_options[sep]', array(
		'default' => '»',
		'type' => 'option',
	) );

	//項目内のラベルなどの設定と、紐付け
	$wp_customize->add_control( 'mytheme_set_breadcrumb', array(
		'label' => '区切り文字',
		'section' => 'mytheme_breadcrumb',
		'settings' => 'mytheme_options[sep]',
	) );
}
add_action( 'customize_register' , 'mytheme_register' );

パンくずリストの項目が追加されました。
wordpress

さらに、パンくずリストの項目で設定した区切り文字を取得してみます。
取得にはget_option()を使います。

$options = get_option( 'mytheme_options' );
echo esc_html($options['sep']);

このように取得できます。
wordpress

後はパンくずリストの機能さえ作れば、簡単に区切り文字を変更することができます。
パンくずリストの作り方はこちらに書いております。
【WordPress】パンくずリストをプラグイン無しで自作する方法

既存の項目に設定を追加

既存の項目に設定を追加する方法もあります。

先ほどの場合だと、add_control()のsectionをadd_section()で自作したmytheme_breadcrumbにしていますが、今回は項目を作らないので、add_section()を使う必要はありません。

どの項目に設定を追加するには、add_control()で設定します。

今回は例として、「サイト基本情報」の項目に、AMPページ用のロゴを設定する機能を追加してみます。

functions.php

function mytheme_register ( $wp_customize ) {
 
	//AMPページ用のロゴの設定(データベースに設定を追加)
	$wp_customize->add_setting('mytheme_options[amp_logo]', array(
		'default' => '',
		'type' => 'option',
	));
 
	//項目内のラベルなどの設定と、紐付け
	$wp_customize->add_control( new WP_Customize_Image_Control(
		$wp_customize,
		'mermaid_header_amp_logo_image', array(
			'label' => 'AMPページロゴ画像',
			'section' => 'title_tagline',
			'settings' => 'mytheme_options[amp_logo]',
			'description' => 'ロゴ画像を設定してください。',
		)
	));
}
add_action( 'customize_register' , 'mytheme_register' );

この場合ですと、add_control()sectionに、title_taglineが指定されています。
これが「サイト基本情報」の項目に設定を追加するということになります。

実際にはこのように表示されます。
wordpress

AMPページの作成とそれなりの設定をしなければ、AMPページロゴ画像を読み込んでも機能しないのでご注意ください。

また、add_control()sectionに指定できるものは以下のものがあります。

title_tagline : サイト基本情報
colors : 色
header_image : ヘッダー画像
background_image : 背景画像
static_front_page : ホームページ設定

さらに、今回は画像をアップロードする機能を使いたかったので、WP_Customize_Image_Control()を使っています。その他、色を選択する機能や、日付や時間を入力する機能などあります。
テキストを入力する機能や、ラジオボタン機能などを使いたい場合は、これらのクラスを指定しなくても使えます。

まとめ

テーマカスタマイザーをカスタムする基本を紹介してみました。
今回はテキスト入力と、画像のアップロードしか触れていませんが、他にも機能があります。また、add_setting()add_control()add_section()などの使い方なども含めて、次回以降の記事で徐々に紹介していければと思います。

スポンサードリンク

関連コンテンツ

オススメ記事

WordPress のテーマ開発に絶対必須な gulp プラグイン9選!

3Dゲームに酔ってしまう@It_is_Rです。 今回は、テーマを自作するのに必須な gulp プラグインの紹介と使い方について書いていきます。 gulp について gulpは、sas

bootstrap3

Bootstrap3でサイトのレイアウト。グリッドシステムの使い方と裏技。

開発中のゲームはサイト制作に入っております。@It_is_Rです。 前回に引き続き、Bootstrap3の記事です。 サイトを作るとき、CSSなどを使ってサイトのレイアウトを調節したりしますが

【Android Studio】エミュレータを起動してプログラムを実行する方法!

何をやっても長続きしない@It_is_Rです。 このままでは人生さえも長続きしないかも知れない。 さて、しばらくぶりになってしまいましたが、今回は Android Studio 2.3.2 を

【Android Studio】TextView 文字の色やサイズ、書体を変更する方法。

サイズは大きいほど、押しがいがあります。@It_is_Rです。 スマホのボタンの話ですよ。何を考えてたんですか? Androidアプリ開発、8回目となりました。 今回はこれまでに学習した T

Scratchで じゃんけんゲームを作ろう!

小学生から始めるScratch入門。じゃんけんゲームを作ろう!

小学生から始めるScratch入門です。 前回、スクラッチでシューティングゲームを作りました。 今回はじゃんけんゲームを作ってみましょう。 プロローグ [serif icon=

Swift

【Xcode7】Swift2使ってみた。playgroundで遊びながら覚える。

最近は押入れの中で寝るのが日課の@It_is_Rです。 押入れは寝心地がいいです。部屋も押入れ分だけ広くなるし。 SwiftはAppleが出しているプログラミング言語です。Swiftを使うこと

プログラミングのクラスってなぁに?

小学生からのJavaScript。クラスの概念をしっかりと理解しよう!

小学生からのプログラミング講座(こうざ)、第12弾です。 前回はマップ上をキャラクターが自由に動くことができるようにしました。 今回はES6から使われるようになった「ク

【 gulp 】 超便利! Sass で Normalize.css などをインポートする方法。

ふと立ち上がった瞬間に、ホットマットを猫に奪われる@It_is_Rです。 全然どいてくれない。 今回は gulp を使って、 Sass ファイルから Normalize.css などをインポー

【Android Studio】アプリ開発の基本とそれぞれのファイルの役割を覚える。

iPhone持ってないみなさん、一緒にAndroidアプリ開発しましょう。@It_is_Rです。 Androidアプリ開発、5回目となりました。 今回は Android Studio でアプリ

【Gitの使い方 – その4】ブランチを使って履歴を分岐させる方法

エビの殻や、ポテチ、煮干しなどを食べると、必ずと言っていいほど口が血だらけになります。@It_is_Rです。 さて、Gitの使い方4回目の今回は、ブランチについてです。 ブランチは作業を枝分か

コメントをどうぞ!

メールアドレスが公開されることはありません。