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

一般設定に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など)。

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

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

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく