我想在wordpress multisite中激活博客时挂接一个函数。
我有这个,
add_filter( \'add_signup_meta\', \'custom_add_signup_meta\' );
function custom_add_signup_meta ( $blogmeta = array() ) {
$the_country = $_POST[\'country-origin\'];
$d_currency = $_POST[\'user_currency\'];
$d_zone = $_POST[\'state-origin\'];
$blogmeta[\'countries_id\'] = $the_country;
$blogmeta[\'default_currency\'] = $d_currency;
$blogmeta[\'zone_id\'] = $d_zone;
return $blogmeta;
}
add_action( \'wpmu_activate_blog\', \'insert_custom_datas1\', 10, 3 );
function insert_custom_datas1($blog_id, $blogmeta) {
global $wpdb, $blogname, $blog_title, $errors, $domain, $path;
$wp_blogs = $wpdb->base_prefix . "blogs";
$wpdb->query("UPDATE `" . $wp_blogs . "` SET `countries_id`=\'".$wpdb->escape($blogmeta[\'countries_id\'])."\', `default_currency`=\'".$wpdb->escape($blogmeta[\'default_currency\'])."\', `zone_id`=\'".$wpdb->escape($blogmeta[\'zone_id\'])."\' where `blog_id` = \'" . (int)$blog_id . "\'");
}
但是,它不起作用。。问题是什么?谢谢
最合适的回答,由SO网友:KalenGi 整理而成
我可以想到两个可能的原因:
在wpmu_activate_blog
\' 钩子提供5个参数($blog_id, $user_id, $password, $signup->title, $meta
), 但你只收到2个参数($blog_id, $blogmeta
)
wpmu_activate_blog
\' 钩子只在用户创建博客时触发,而不是在超级adimin创建博客时触发。