Php WordPress中的更新选项

Php WordPress中的更新选项,php,wordpress,Php,Wordpress,我正在WordPress中创建管理主题选项,除了一个功能“更新选项”外,其他功能都可以完美运行。当我通过选项管理面板进行更改并保存更改时,我会收到消息“选项设置已保存”。但当我检查我的页面时,我看到没有任何更改 以下是我的更新或保存选项代码: function mytheme_add_admin() { global $themename, $shortname, $options; if ( $_GET['page'] == basename(__FILE__) ) {

我正在WordPress中创建管理主题选项,除了一个功能“更新选项”外,其他功能都可以完美运行。当我通过选项管理面板进行更改并保存更改时,我会收到消息“选项设置已保存”。但当我检查我的页面时,我看到没有任何更改

以下是我的更新或保存选项代码:

 function mytheme_add_admin() {

    global $themename, $shortname, $options;

    if ( $_GET['page'] == basename(__FILE__) ) {

        if ( 'save' == $_REQUEST['action'] ) {

            foreach ($options as $value) {
                update_option( $value['id'], $_REQUEST[ $value['id'] ] ); 
            }

            foreach ($options as $value) {
                if( isset( $_REQUEST[ $value['id'] ] ) ) 
                { 
                    update_option( $value['id'], $_REQUEST[ $value['id'] ]  ); 
                } 
                else {
                    delete_option( $value['id'] ); 
                } 
            }

            header("Location: admin.php?page=functions.php&saved=true");
            die;

        } 
        else if( 'reset' == $_REQUEST['action'] ) {

            foreach ($options as $value) {
                delete_option( $value['id'] ); 
            }

            header("Location: admin.php?page=functions.php&reset=true");
            die;

        }
    }

    add_menu_page($themename, $themename, 'administrator', basename(__FILE__), 'mytheme_admin');
}

function mytheme_add_init() {

}

我的代码怎么了?

您忘记了将检索并显示选项值的else语句

以下是一些解释:

关于请求操作的代码仅为带有保存和重置操作的状态,您将错过显示选项值的正常行为

举个小例子:

if('save' == $_REQUEST['action'] ){
    // use update_option
}
elseif( 'reset' == $_REQUEST['action'] ){
   // use delete_option
}
else{
  // use get_option
}
 $options = get_option('my_theme_option');
您在函数顶部询问的全局$选项与您需要唯一的名称相关,即:
my_theme_options['ID']
,当您检索选项、保存选项时,您需要指定它。 例如:

if('save' == $_REQUEST['action'] ){
    // use update_option
}
elseif( 'reset' == $_REQUEST['action'] ){
   // use delete_option
}
else{
  // use get_option
}
 $options = get_option('my_theme_option');
然后要显示您的选项值,您可以使用
$options['ID']获得它

因此,要显示输入框,您需要以下内容:

echo '<input name="my_theme_options[ID]" value="'.$options['ID'].'" type="text"/>';
echo';
您需要在foreach循环中使用任何输入或selectform标记来调整它


希望你明白我的意思

你们登记了吗?什么意思?你能解释一下吗?你说什么都没有改变,所以我问的是值是否存储在表中?是的值存储在表中,你能解释一下吗?