下面是张贴在这里的答案,
How to add Custom Blog Options to new blog setup form?
我试图理解,只要不让update\\u blog\\u option()运行,为什么会将自定义元添加到博客的选项表中。我在该函数之前添加了echos和exit(),以确保值正确,并且它在选项表中填充了正确的值。但是,当我删除exit()并让它运行时,它不会填充。
所讨论的代码是,
add_action(\'wpmu_new_blog\', \'process_extra_field_on_blog_signup\', 10, 6);
function process_extra_field_on_blog_signup($blog_id, $user_id, $domain, $path, $site_id, $meta) {
update_blog_option($blog_id, \'extra_field\', $meta[\'extra_field\']);
}
此外,表wp\\u注册的具体功能是什么?在激活之前,它是否是注册的临时保留位置?一旦激活,这些数据会传递到博客吗?在这种情况下,存储在那里的元无论如何都会被传递,对吗?
用于添加自定义元的代码是,
add_filter(\'add_signup_meta\', \'append_extra_field_as_meta\');
function append_extra_field_as_meta($meta) {
if(isset($_REQUEST[\'extra_field\'])) {
$meta[\'extra_field\'] = $_REQUEST[\'extra_field\'];
}
return $meta;
}
这将正确地存储在wp\\u注册表中。
谢谢你的帮助。
SO网友:daggerhart
我也有同样的问题,我发现blogtemplates插件在我更新选项后删除了我的选项。你可能有类似的情况。
我通过在博客模板之后执行wpmu\\u new\\u blog钩子修复了我的问题。
// blogtemplates executes at 9999, go last at 10000
add_action(\'wpmu_new_blog\', \'process_extra_field_on_blog_signup\', 10000, 6);