私は管理者パネルで私のプラグインオプションを設定しました。
/**
* Register and add settings
*/
public function page_init()
{
register_setting(
'my_option_group', // Option group
'write_here_options', // Option name
array( $this, 'sanitize' ) // Sanitize
);
add_settings_section(
'setting_section_id', // ID
'Set Edit Page', // Title
array( $this, 'print_section_info' ), // Callback
'write-here-setting' // Page
);
add_settings_field(
"pid_num",
"Select Page >>",
array( $this, 'wh_select_list' ),
"write-here-setting",
"setting_section_id"
);
add_settings_field(
'num_of_posts', // ID
'Number of Posts to show', // Title
array( $this, 'num_of_posts_callback' ), // Callback
'write-here-setting', // Page
'setting_section_id' // Section
);
}
DBでは、私のプラグイン設定はwp_options
テーブルのカラム名option_name
でwrite_here_options
としてオブジェクトとして保存されました。
人々がプラグインをアクティブにしたとき、私はpid_num => 0
とnum_of_posts => 10
のためにDBにデフォルト値を保存したいです。
どうやってこの作品を作るの?
プラグインが有効になったときにデフォルト値をDBに設定するために、以下のコードを追加しました。
function write_here_activation_actions(){
do_action( 'wp_writehere_extension_activation' );
}
register_activation_hook( __FILE__, 'write_here_activation_actions' );
// Set default values here
function write_here_default_options(){
$default = array(
'pid_num' => '0',
'num_of_posts' => '10'
);
update_option( 'write_here_options', $default );
}
add_action( 'wp_writehere_extension_activation', 'write_here_default_options' );
あなたのコードは確かに get_option()
をあなたのオプションの値を取得するために使うでしょう。 get_option()
は、デフォルトを指定することを可能にする2番目の引数を受け入れます。データベースに値を不必要に挿入する代わりにそれを使用してください。
get_option( $option, $default );
あなたがサードパーティのコードを心配しているのなら、 option_{$option}
フィルタ があります。
116 /**
117 * Filter the value of an existing option.
118 *
119 * The dynamic portion of the hook name, `$option`, refers to the option name.
120 *
121 * @since 1.5.0 As 'option_' . $setting
122 * @since 3.0.0
123 *
124 * @param mixed $value Value of the option. If stored serialized, it will be
125 * unserialized prior to being returned.
126 */
127 return apply_filters( 'option_' . $option, maybe_unserialize( $value ) );
Update_optionの代わりにadd_optionを使用してください。 add_optionを使用した場合、既存のオプションは更新されず、保護されたWordPressオプションを追加していないことを確認するためのチェックが行われます。
Developer.wordpress.orgの add_option および update_optionを参照してください
// Activation
function name_plugin_activation(){
do_action( 'name_plugin_default_options' );
}
register_activation_hook( __FILE__, 'name_plugin_activation' );
// Set default values here
function name_plugin_default_values(){
// Form settings
add_option('name_form_to', '[email protected]');
add_option('name_form_subject', 'New');
}
add_action( 'name_plugin_default_options', 'name_plugin_default_values' );