Создать тему WordPress:

Я пытаюсь создать опцию панели WordPress темы. Страница параметров отображается нормально, но при отправке формы я получаю:

ОШИБКА: страница параметров не найдена.

Это мой код

<?php
/*
Plugin Name: Option Man
Description: A test plugin to manage site 
Author: Pravin Mishra
Version: 0.1
*/
add_action('admin_menu', 'test_plugin_setup_menu');
function test_plugin_setup_menu(){
        add_menu_page( 'Option-Man-Plugin', 'Option Man', 'manage_options', 'test-plugin', 'test_init' );

}

function test_init(){

    add_action( 'admin_init', 'register_my_setting' );

function register_my_setting() {
    //register_setting( 'myoptions-group', 'my_option_name', 'intval' ); 
    register_setting(‘myoptions-group’, ‘testplugin_option1′);

    register_setting(‘myoptions-group’, ‘testplugin_option2′);
} 
 echo "Hello world!";
 ?>
    <div class="wrap">
        <u><h2>BS3 Custom Options</h2></u>
        <form method="post" action="http://192.168.2.139/web/wp-admin/options.php">
        <?php //settings_fields( 'myoptions-group' );
        //do_settings_sections( 'myoption-group' );
        settings_fields( 'myoptions-group' );
    ?>
<input type="text"   name="testplugin-option1" value="<?php echo get_option('testplugin_option1'); ?>"/>
<input type="text"  name="testplugin-option2" value="<?php echo get_option('testplugin_option2'); ?>"/>


    <?php
   submit_button(); 
            ?>
</form>
</div>
<?php
} 
?>

2 ответа

+ Изменить <form method="post" action="http://192.168.2.139/web/wp-admin/options.php"> в <form method="post" action="">

Я исправил код, теперь он работает нормально.

add_action('admin_menu', 'test_plugin_setup_menu');
function test_plugin_setup_menu(){
        add_menu_page( 'Option-Man-Plugin', 'Option Man', 'manage_options', __FILE__, 'test_init' );

    add_action( 'admin_init', 'register_my_setting' );
}

function register_my_setting() {
    //register_setting( 'myoptions-group', 'my_option_name', 'intval' ); 
    register_setting('myoptions-group', 'testplugin_option1');

    register_setting('myoptions-group', 'testplugin_option2');
} 

function test_init(){
  ?>
    <div class="wrap">
        <u><h2>BS3 Custom Options</h2></u>
        <form method="post" action="options.php" enctype="multipart/form-data">
        <?php
        settings_fields('myoptions-group');
        do_settings_sections('myoptions-group');
        ?>

<input type="text"   name="testplugin_option1" value="<?php echo get_option('testplugin_option1'); ?>"/>
<input type="text"  name="testplugin_option2" value="<?php echo get_option('testplugin_option2'); ?>"/>


        <?php
      submit_button(); 
            ?>
</form>
</div>
<?php
} 

Ваше имя поля и имя параметра не совпадают, а также неверный путь к странице параметров.

Другие вопросы по тегам