一般設定に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など)。
一般設定以外に追加したい場合
一般設定以外に項目を追加したり、項目を追加する位置を指定したり、見出しや説明をつけたりすることもできます。下記が参考になります。
