これが私のコードです:
add_action('admin_menu', 'test_plugin_setup_menu'); /**/
function test_plugin_setup_menu(){ /**/
add_submenu_page('options-general.php','Forhandler options side','Forhandler Options', 'manage_options', 'mine-første-options', 'test_init'); /**/
} /**/
function test_init(){ /**/
//echo "<h1>Hello World!</h1>";
?>
<div>
<h1>Codehero Dealers</h1>
<form action="options.php" method="post">
<?php settings_fields('mine_plugin_options'); ?>
<?php do_settings_sections('mine-første-options'); ?>
<input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" />
</form>
</div>
<?php
}
function mine_plugin_section_text() {
echo '<p>Her Finder du indstillinger til forhandler delen.</p>';
}
// add the admin settings and such
add_action('admin_init', 'mine_plugin_admin_init');
function mine_plugin_admin_init(){
register_setting( 'mine_plugin_options', 'mine_plugin_options', 'mine_plugin_options_validate' );
add_settings_section('mine_plugin_main', 'Main Settings', 'mine_plugin_section_text', 'mine-første-options');
add_settings_field('mine_plugin_text_string', 'Forhandler checkout indstilling', 'mine_plugin_setting_string', 'mine-første-options', 'mine_plugin_main');
}
function mine_plugin_setting_string() {
$options = get_option('mine_plugin_options');
echo "<input id='plugin_checkbox' name='mine_plugin_options[plugin_checkbox]' type='checkbox' value='true' />";
}
// validate our options
function mine_plugin_options_validate($input) {
/*
$options = get_option('mine_plugin_options');
$options['text_string'] = trim($input['text_string']);
if(!preg_match('/^[a-z0-9]{}$/i', $options['text_string'])) {
$options['text_string'] = '';
}
return $options; */
}
設定は保存されましたが、チェックボックスはクリックされていない状態に戻ります。
「自分自身のオプションを作成する」ということは、まったく新しいことではないので、どんな助けにも感謝します。私はこのチュートリアルに従ってコードを作成しました。 http://ottopress.com/2009/wordpress-settings-api-tutorial/
検証コードをコメントアウトしないでください。データの検証に使用していることを忘れないでください。
add_action('admin_bar_menu', 'make_parent_node', 999);
function make_parent_node($wp_admin_bar) {
$args = array(
'id' => 'test1234', // id of the existing child node (New > Post)
'title' => 'test', // alter the title of existing node
'parent' => 'new-content', // set parent to false to make it a top level (parent) node
'href' => admin_url('admin.php?page=enter_timesheet')
);
$wp_admin_bar->add_node($args);
}
add_action('admin_menu', 'test_plugin_setup_menu');
function test_plugin_setup_menu() { /**/
add_submenu_page('options-general.php', 'Forhandler options side', 'Forhandler Options', 'manage_options', 'mine-første-options', 'test_init');
}
/**/
function test_init() { /**/
//echo "<h1>Hello World!</h1>";
?>
<div>
<h1>Codehero Dealers</h1>
<form action="options.php" method="post">
<?php settings_fields('mine_plugin_options'); ?>
<?php do_settings_sections('mine-første-options'); ?>
<input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" />
</form>
</div>
<?php
}
function mine_plugin_section_text() {
echo '<p>Her Finder du indstillinger til forhandler delen.</p>';
}
// add the admin settings and such
add_action('admin_init', 'mine_plugin_admin_init');
function mine_plugin_admin_init() {
register_setting('mine_plugin_options', 'mine_plugin_options', 'mine_plugin_options_validate');
add_settings_section('mine_plugin_main', 'Main Settings', 'mine_plugin_section_text', 'mine-første-options');
add_settings_field('mine_plugin_checkbox', 'Forhandler checkout indstilling', 'mine_plugin_setting_string', 'mine-første-options', 'mine_plugin_main');
}
function mine_plugin_setting_string() {
$options = get_option('mine_plugin_options');
echo "<input id='mine_plugin_checkbox' name='mine_plugin_options[checkbox]' type='checkbox' value='1'" . checked( 1, $options['checkbox'], false ) . " />";
}
// validate our options
function mine_plugin_options_validate($input) {
$newinput['checkbox'] = trim($input['checkbox']);
return $newinput;
}
オプションを読んだり、条件を設定したり、値の有無をチェックする代わりに、WordPressのchecked
関数を使うことができます。
入力からchecked="checked"
値が欠落しているようです。
このようなことを試してください:
$options = get_option('mine_plugin_options');
$checked = ($options == 'true' ? ' checked="checked"' : '');
echo "<input id='plugin_checkbox' name='mine_plugin_options[plugin_checkbox]' type='checkbox' value='true' {$checked} />";