WordPress文档在面向对象的代码上似乎参差不齐。我正在设置一些插件,第一个插件应该注册设置和菜单页。它为register_setting()
或add_settings_field()
呼叫。这些应该去其他地方吗?
我也没有看到管理设置页面被创建?谢谢你的帮助。
<?php
//$c = new mySettings();
class mySettings {
public function __construct() {
$this->add_hooks();
$this->register_settings();
}
public function add_hooks() {
add_action(\'admin_menu\', array($this, \'admin_menu\'));
add_action(\'admin_init\', array($this, \'register_settings\'));
}
public function register_settings() {
//exit(\'register_settings\'. microtime());
register_setting(\'mySettings\', \'mySettings\', null);
add_settings_field(\'myUrl\', \'API URL\', array($this, \'myUrl_callback\'), \'my\');
add_settings_field(\'myOauthUrl\', \'API Host\', array($this, \'myOauthUrl_callback\'), \'my\');
add_settings_field(\'myClientId\', \'API Client Id\', array($this, \'myClientId_callback\'), \'my\');
add_settings_field(\'mySharedSecret\', \'API Shared Secret\', array($this, \'mySharedSecret_callback\'), \'my\');
}
public function admin_menu() {
exit(\'admin_menu\'. mircotime());
add_options_page(\'my API Settings\', \'my Settings\', \'manage_options\', \'my-my\', array($this, \'settings_page\'));
}
public function settings_page() {
if (!current_user_can(\'manage_options\')) {
wp_die(__(\'You do not have sufficient permissions to access this page.\'));
}
print \'<h2>my API Settings</h2><form action="options.php" method="post">\';
print settings_fields(\'mySettings\');
print do_settings_sections(\'mySettings_selections\');
print submit_button() .\'</form>\';
}
public function myUrl_callback() {
$options = get_option(\'mySettings\');
$option = isset($options[\'myUrl\']) ? $options[\'myUrl\'] : \'\';
print \'<input id="myUrl" name="mySettings[myUrl]" type="text" value="\' . $option . \'" />\';
}
}