如何防止Wordpress主题选项页面保存空白字段?

时间:2014-02-28 17:24:30

标签: php wordpress wordpress-theming

所以,我一直在关注如何创建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字段中输入内容,它会更新它并显示在前端,但如果我将其留空,并点击保存,它会更新数据库空白值,因此前端没有任何内容,甚至没有默认值。

有关如何更新保存脚本以防止此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

对于那些可能已经查看类似教程的人,删除脚本的isset部分可以解决问题!