不久前,我尝试使用wordpress创建自定义表单注册。我想注册几个自定义字段并使它们成为必需的,所以我试图找到正确的插件,而不是重新设计轮子。
我找到了一个名为theme my login的好插件:http://wordpress.org/plugins/theme-my-login/
要做到这一点,您需要阅读一些内容,但幸运的是,我们网站上有一些文档可以帮助您:
请参见此处如何添加额外注册字段:http://www.jfarthing.com/development/theme-my-login/adding-extra-registration-fields/
基本上,您需要:
1) 安装插件
2) 添加register-form.php 进入主题布局。
3) 修改您的register-form.php 对于类似的内容:
<div class="login" id="theme-my-login<?php $template->the_instance(); ?>">
<?php $template->the_action_template_message( \'register\' ); ?>
<?php $template->the_errors();
?>
<form name="registerform" id="registerform<?php $template->the_instance(); ?>" action="<?php $template->the_action_url( \'register\' ); ?>" method="post" autocomplete = "off">
<input type="text" name="user_login" id="user_login<?php $template->the_instance(); ?>" class="input" value="<?php $template->the_posted_value( \'user_login\' ); ?>" size="20" />
<input type="text" name="user_email" id="user_email<?php $template->the_instance(); ?>" class="input" value="<?php $template->the_posted_value( \'user_email\' ); ?>" size="20" />
<input type="text" placeholder="Gender" name="user_gender" id="user_gender<?php $template->the_instance(); ?>" value="<?php $template->the_posted_value( \'user_gender\' ); ?>" required />
<input type="text" placeholder="City" type="text" id="user_city<?php $template->the_instance(); ?>" name="user_city" value="<?php $template->the_posted_value( \'user_city\' ); ?>"/>
<?php do_action( \'register_form\' ); ?>
<p class="submit">
<input type="submit" name="wp-submit" class="yellow btn1 uppercase right os700" id="wp-submit<?php $template->the_instance(); ?>" value="<?php esc_attr_e( \'[ Submit ]\' ); ?>" />
<input type="hidden" name="redirect_to" value="<?php $template->the_redirect_url( \'register\' ); ?>" />
<input type="hidden" name="instance" value="<?php $template->the_instance(); ?>" />
<input type="hidden" name="action" value="register" />
</p>
</form>
<?php $template->the_action_links( array( \'register\' => false ) ); ?>
在这里,您可以根据需要修改和添加自定义字段以及任意多的HTML和CSS。
然后在你的functions.php
你需要注册几个动作,所以我们开始吧。
要注册用户,请执行以下操作:
function tml_user_register( $user_id ) {
if ( !empty( $_POST[\'user_login\'] ) )
update_user_meta( $user_id, \'user_login\', $_POST[\'user_login\'] );
if ( !empty( $_POST[\'user_email\'] ) )
update_user_meta( $user_id, \'user_email\', $_POST[\'user_email\'] );
if ( !empty( $_POST[\'user_gender\'] ) )
update_user_meta( $user_id, \'user_gender\', $_POST[\'user_gender\'] );
if ( !empty( $_POST[\'user_city\'] ) )
update_user_meta( $user_id, \'user_city\', $_POST[\'user_city\'] );
}
add_action( \'user_register\', \'tml_user_register\' );`
要在仪表板上显示内容,请执行以下操作:
add_action ( \'show_user_profile\', \'my_show_extra_profile_fields\' );
add_action ( \'edit_user_profile\', \'my_show_extra_profile_fields\' );
通过这两个操作,您可以在仪表板上显示您的用户配置文件,因此可以将其添加到功能中。php也是如此。
<?php function my_show_extra_profile_fields ( $user ){ ?>
<h3>Custom profile information</h3>
<table class="form-table">
<tr>
<th><label for="user_gender"><?php _e(\'Gender\');?></label></th>
<td><input type="text" name="user_gender" id="user_gender" value="<?php echo esc_attr( get_the_author_meta( \'user_gender\', $user->ID ) ); ?>" /><br /></td>
</tr>
<tr>
<th><label for="user_city"><?php _e(\'City\');?></label></th>
<td><input type="text" name="user_city" id="user_city" value="<?php echo esc_attr( get_the_author_meta( \'user_city\', $user->ID ) ); ?>" /><br /></td>
</tr>
</table>
<?php }
如果您想让用户更新自己的信息,请添加类似的内容(也在functions.php中):
add_action ( \'personal_options_update\', \'my_save_extra_profile_fields\' );
add_action ( \'edit_user_profile_update\', \'my_save_extra_profile_fields\' );
function my_save_extra_profile_fields( $user_id ){
if ( !current_user_can( \'edit_user\', $user_id ) )
return false;
update_usermeta( $user_id, \'user_gender\', esc_attr(trim($_POST[\'user_gender\'])) );
update_usermeta( $user_id, \'user_city\', esc_attr(trim($_POST[\'user_city\'])) );
}
是相当多的,但有用的一试,阅读文档并祝你好运,希望这对你有所帮助。
EDITED
好的,如果您想显示用户元,可以使用
author.php 以及
profile-form.php 位于
templates
文件夹,以及
register-form.php 其他文件您可以将此文件复制到主题文件夹并自定义。
在上显示自定义元author.php
添加以下短代码:
echo do_shortcode(\'[theme-my-login default_action="profile" show_title="1"]\');
然后,您可以使用以下方式显示内容:
echo $profileuser->user_city
echo $profileuser->user_gender