Wordpress自定义帖子类型+元数据不保存数据

时间:2013-04-30 15:48:06

标签: wordpress custom-post-type meta-boxes

当我保存帖子时,metabox中的数据不保存在数据库中...... bug在哪里?

我的代码位于:pastebin

谢谢!

1 个答案:

答案 0 :(得分:0)

实际上你已经在$rest_custom_meta_fields函数中声明了你的restaurant_data_form数组并尝试在save_restaurant_custom_meta函数中使用它,在这种情况下,数组不在函数范围内,所以{{1} }无法正常工作。

要解决此问题,您可以将数组保留在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