WordPressで管理画面の一般設定に項目を追加する方法

Facebook App ID

一般設定にFacebook App IDの項目を追加する

「いいねボタン」など、Facebookが用意するソーシャルプラグインを利用する場合はFacebookが発行するApp IDが必要です。このApp IDはテーマなどに直接記述している方が多いのではないかと思いますが、一ドメインに一つのものなので、WordPressの管理画面で管理できると便利です。そこで今回は一般設定にFacebook App IDの設定項目を追加してみます。

// admin_initアクションにフック
add_action( 'admin_init', 'add_general_custom_sections' );
function add_general_custom_sections() {
	// add_settings_field( 'キー', 'ラベル', 'コールバック関数', 'general' )で項目を追加
	add_settings_field( 'facebook_appid', 'Facebook AppID', 'facebook_appid', 'general' );
	// register_setting( 'general', 'キー' )で値を保存
	register_setting( 'general', 'facebook_appid' );
}
function facebook_appid( $args ) {
	$facebook_appid = get_option( 'facebook_appid' );
	?>
	<input type="text" name="facebook_appid" id="facebook_appid" size="30" value="<?php echo esc_attr( $facebook_appid ); ?>" />
	<?php
}

add_settings_field関数とregister_setting関数で指定している「general」の部分はどの設定ページに表示するか、という指定になります。今回は「一般設定」に追加したいので「general」を指定しています。

一般設定

あとはテンプレート(heder.php)に、Facebook App IDが表示されるようにコードを書きます。


<body <?php body_class(); ?>>
<?php
// facebook_appidが設定されているときは表示
$facebook_appid = get_option( 'facebook_appid' );
if ( $facebook_appid ) : ?>
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
	FB.init({
		appId	: <?php echo $facebook_appid; ?>, // App ID
		status	: true, // check login status
		cookie	: true, // enable cookies to allow the server to access the session
		xfbml	: true  // parse XFBML
	});
};
</script>
<?php endif; ?>

その他、サイトで一つしかない項目がある場合は同様の方法で追加すると便利です(GoogleAnalyticsのトラッキングIDなど)。

一般設定以外に追加したい場合

一般設定以外に項目を追加したり、項目を追加する位置を指定したり、見出しや説明をつけたりすることもできます。下記が参考になります。

  • ブックマーク
  • Feedly

この記事を書いた人

キタジマタカシ

長崎在住、フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開しています。現在は WordPress 有料テーマ Snow Monkey を開発・販売しています。