この設定ページで多くの問題を抱えています。私はドキュメント(これはまばらだった)をたどり、少し手助けを探しました。
私の問題は単純です、私の設定オプションは作成も保存もされていません。任意の助けは大歓迎です!
これが一般的な設定です。
public $view;
function __construct()
{
$this->view = new My_View;
// hook the settings menu
add_action('admin_menu', array($this, 'index'));
// hook the settings' settings
add_action('admin_init', array($this, 'registerSettings'));
}
/**
* setup the settings menu Page Title, Menu Title, Permissions, Menu Slug, View to render
*/
public function index()
{
add_options_page("My Settings", "My menu", "manage_options", "My_Settings", array($this->view, 'index_view'));
}
public function registerSettings()
{
//options, name of option, validate function
register_setting('my_general_settings', 'my_general_settings');
}
次に、フォーム:
public function index_view()
{ ?>
<div class="wrap" style="display:block;">
<h2>Settings</h2>
<hr>
<form method="POST" action="">
<h3>General Settings</h3>
<?php settings_fields('my_general_settings'); ?>
<?php $settings = get_option('my_general_settings') ?>
<label for="my_settings[publisher_id]">Enter your Publisher ID:</label>
<input type="text" name="my_general_settings[publisher_id]" value="<?php echo $settings['publisher_id']?>" />
<input type="submit" value="Save Changes" />
<p>Forgot your ID? <a href="">Click here</a></p>
</form>
</div>
<?php }
フォームアクションはoptions.php
を指す必要があります。これは、すべての設定ページに対するWordPressの組み込みハンドラです。
<form method="POST" action="options.php">
これはCodexの Settings APIページ にかなり徹底的に文書化されています。