根据我在网上看到的内容,以下代码应该在Wordpress的用户注册表单中添加“城市”字段。
事情是,它似乎不起作用 - 我没有在用户表单中看到额外的“城市”字段。
任何帮助表示感谢。
add_action( 'register_form', 'extended_register_form' );
add_filter('registration_errors', 'myplugin_registration_errors', 10, 3);
add_action('user_register', 'myplugin_user_register');
function extended_register_form() {
$city = ( isset( $_POST['city'] ) ) ? $_POST['city']: '';
?>
<p>
<label for="city">City<br />
<input type="text" name="city" id="city" class="input" value="<?php echo esc_attr(stripslashes($city)); ?>" size="25" /></label>
</p>
<?
}
function myplugin_registration_errors ($errors, $sanitized_user_login, $user_email) {
if ( empty( $_POST['city'] ) )
$errors->add( 'city_error', __('<strong>ERROR</strong>: You must include a city.') );
return $errors;
}
function myplugin_user_register ($user_id) {
if ( isset( $_POST['city'] ) )
update_user_meta($user_id, 'city', $_POST['city']);
}
答案 0 :(得分:3)
自Wordpress 3.0.0以来,要调用的操作是“signup_extra_fields”而不是“register_form”,所以你应该使用:
add_action( 'signup_extra_fields', 'extended_register_form' );
答案 1 :(得分:0)
我尝试了您的代码并且效果很好,也许是因为第12行中的<?
...请尝试<?php
而不是......
你在哪里添加了代码?作为插件或主题的functions.php?