管理画面にSNSの独自オプションを置きたい場合は次のようなコード追加で実現できます。
<?php
/**
* SnsOptionsクラス
*
* SNS関連の設定を保存、表示用に使用
*
* ▼WordPressCodex日本語版の設定ページ作成参考
* https://wpdocs.osdn.jp/%E8%A8%AD%E5%AE%9A%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E4%BD%9C%E6%88%90
*/
class SnsOptions {
private $options;
public function __construct() {
add_action( 'admin_menu', array( $this, 'add_option_page' ) );
add_action( 'admin_init', array( $this, 'page_init' ) );
}
public function add_option_page() {
add_options_page(
'SNS',
'SNS設定',
'manage_options',
'my-opitons-sns.php',
array( $this, 'create_option_page' )
);
}
public function create_option_page() {
$this->options = get_option( 'my_sns_options' );
?>
<div class="wrap">
<h1>SNS設定</h1>
<form action="options.php" method="post">
<?php
settings_fields( 'sns_settings_group' );
do_settings_sections( 'my-options-sns.php' );
submit_button();
?>
</form>
</div>
<?php
}
public function page_init() {
register_setting(
'sns_settings_group',
'my_sns_options',
array( $this, 'sanitize' )
);
add_settings_section(
'settings_section_sns',
'SNS関連オプション',
array( $this, 'print_section_info' ),
'my-options-sns.php'
);
add_settings_field(
'fb_app_id',
'facebookアプリID',
array( $this, 'print_fb_app_id' ),
'my-options-sns.php',
'settings_section_sns'
);
}
/**
* データの無害化
*/
public function sanitize( $input ) {
//
}
/**
* セクションの説明文
*/
public function print_section_info() {
//
}
/**
* facebook アプリIDの入力エリア表示
*/
public function print_fb_app_id() {
printf(
'<input type="text" id="fb_app_id" name="my_sns_options[fb_app_id]" value="%s" />',
isset( $this->options['fb_app_id'] ) ? esc_attr( $this->options['fb_app_id'] ) : ''
);
}
}