所以,我一直在关注如何创建Wordpress主题选项页面的很多教程,而且我已经在这个过程中走得很远了。事实上,我实际上已经完成了,但是我的保存功能中存在一个巨大的错误。
如果选项字段留空,则会将空白字段保存到数据库,因此前端的所有内容基本上都是空白的。当我在选项页面中单击“保存”时,我希望它仅更新已编辑信息的字段,如果该字段留空,则会从数据库中删除数据。
这是我的保存脚本:
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=admin-panel.php&saved=true");
die;
}
该脚本正在从选项数组中提取ID。例如,徽标是:
array( "name" => "Logo URL",
"desc" => "Enter the link to your logo image",
"id" => $shortname."_logo",
"type" => "text",
"std" => ""),
因此,使用上面的徽标示例,如果我在徽标URL字段中输入内容,它会更新它并显示在前端,但如果我将其留空,并点击保存,它会更新数据库空白值,因此前端没有任何内容,甚至没有默认值。
有关如何更新保存脚本以防止此问题的任何想法?
答案 0 :(得分:0)
对于那些可能已经查看类似教程的人,删除脚本的isset
部分可以解决问题!