今回の記事では、管理画面の一般設定に項目を追加する方法について紹介します。
一般設定は、サイトの基本情報を格納していますが、デフォルトの設定項目に加えて、追加で情報を格納したいケースもあります。
要件
今回は下記の情報を一般設定に追加します。
- 電話番号
- FAX番号
- 郵便番号
- 住所
実装
まずは完成形のイメージです。
入力部分を追加 functions.php
<?php
function add_custom_option_fields()
{
add_settings_field( 'phone_number', '電話番号', 'display_custom_option_1', 'general');
add_settings_field( 'fax_number', 'FAX番号', 'display_custom_option_2', 'general');
add_settings_field( 'postal_code', '郵便番号', 'display_custom_option_3', 'general');
add_settings_field( 'address', '住所', 'display_custom_option_4', 'general');
register_setting( 'general', 'phone_number' );
register_setting( 'general', 'fax_number' );
register_setting( 'general', 'postal_code' );
register_setting( 'general', 'address' );
}
add_filter( 'admin_init', 'add_custom_option_fields' );
// 入力部品の出力
function display_custom_option_1()
{
$display_custom_option_1 = get_option( 'phone_number' );
?>
<input type="text" id="phone_number" name="phone_number" value="<?php echo $display_custom_option_1; ?>">
<?php
}
function display_custom_option_2()
{
$display_custom_option_2 = get_option( 'fax_number' );
?>
<input type="text" id="fax_number" name="fax_number" value="<?php echo $display_custom_option_2; ?>">
<?php
}
function display_custom_option_3()
{
$display_custom_option_3 = get_option( 'postal_code' );
?>
<input type="text" id="postal_code" name="postal_code" value="<?php echo $display_custom_option_3; ?>">
<?php
}
function display_custom_option_4()
{
$display_custom_option_4 = get_option( 'address' );
?>
<input type="text" id="address" name="address" value="<?php echo $display_custom_option_4; ?>">
<?php
}
解説
add_settings_field
add_settings_field()を使用して、設定項目の登録を行います。
構文については公式ドキュメントを参照してください。
第三引数(display_custom_option_1など)で、描画処理をコーヅバックで呼び出しています。
register_setting
register_setting()では、データを保存する際のname属性を保存します。
add_settings_field()で指定したid値と同一にする必要があります。
上記の記述を、functions.php内に記述をすることで、一般設定に項目を追加できるようになります。
コメント