0

当我保存帖子时,元框中的数据没有保存在数据库中......错误在哪里?

我的代码在这里:pastebin

谢谢!

4

1 回答 1

0

实际上,您已经在函数中声明了$rest_custom_meta_fields数组restaurant_data_form并尝试在save_restaurant_custom_meta函数中使用它,在这种情况下,数组超出了函数范围,因此foreach ($rest_custom_meta_fields as $field)无法正常工作。

为了克服这个问题,您可以将数组排除在外,只需在函数之前restaurant_data_form声明array正确的restaurant_data_form

$rest_custom_meta_fields = array(  
    array(  
        'label'=> 'Address',  
        'desc'  => 'Plugin use it to get map',  
        'id'    => $prefix.'text_address',  
        'type'  => 'text'  
    ),
    ...
);

在你的restaurant_data_form功能中

function restaurant_data_form()
{
    $prefix = 'rest_';
    global $post, $rest_custom_meta_fields;
    // ...
}

所以它应该看起来像这样(数组在全局范围内)

$rest_custom_meta_fields = array( 
    array(...),
    ...
);
function restaurant_data_form()
{
    $prefix = 'rest_';
    global $post, $rest_custom_meta_fields;
    // ...
}

我希望这能解决问题。同样在您使用的代码的末尾

echo add_action('save_post', 'save_restaurant_custom_meta');

从语句echo的开头删除。add_action(...)

于 2013-04-30T16:50:11.377 回答