在配置文件页面中添加和删除字段

时间:2012-08-01 作者:AppleNaveeN

注册表字段:(前端注册表)

Username,
Email (password will generate to email).
编辑配置文件:(前端编辑配置文件)

Firstname,
Lastname,
Username,
Email,
Phone, 
Address,
Zip / postal code,
Website,
State(Drop down-Dynamic),
Country(Drop down), 
Newsletter (Check box),
Change password.
上述字段是其相应页面所必需的。

目前,我正在使用主题我的登录插件进行前端登录和注册。

以及用于注册页面字段编辑的Cimy用户额外字段插件。(但是,它没有在配置文件页面中添加字段和更改字段的选项。)

我们如何使用自定义代码编辑或插件来做到这一点?

如果有任何插件可以这样做,请告诉我插件名称和下载链接。

如果只能通过自定义代码编辑,请指导我如何完成此操作。

3 个回复
SO网友:Rutwick Gangurde

此答案复制自the best post 关于这个话题!我本来可以给你这些链接,但这会让我得到mod的评论,以发布示例代码;)

要添加字段,请执行以下操作:

add_action( \'show_user_profile\', \'my_show_extra_profile_fields\' );
add_action( \'edit_user_profile\', \'my_show_extra_profile_fields\' );

function my_show_extra_profile_fields( $user ) { ?>
    <h3>Extra profile information</h3>
    <table class="form-table">
        <tr>
            <th><label for="twitter">Twitter</label></th>
            <td>
                <input type="text" name="twitter" id="twitter" value="<?php echo esc_attr( get_the_author_meta( \'twitter\', $user->ID ) ); ?>" class="regular-text" /><br />
                <span class="description">Please enter your Twitter username.</span>
            </td>
        </tr>
    </table>
为了保存数据:

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;

    /* Copy and paste this line for additional fields. Make sure to change \'twitter\' to the field ID. */
    update_usermeta( $user_id, \'twitter\', $_POST[\'twitter\'] );
}
另一个helpful link here.

谢谢Justin Tadlock!:D

SO网友:Denis Lam

要添加或删除联系人字段,请将其添加到functions.php:

    <?php
    add_filter(\'user_contactmethods\', \'modify_contact_methods\');
    function modify_contact_methods($profile_fields) {
        // Add new fields
    $profile_fields[\'facebook\'] = \'Facebook URL\';
    $profile_fields[\'twitter\'] = \'Twitter Username\';
    $profile_fields[\'gplus\'] = \'Google+ URL\';
    $profile_fields[\'youtube\'] = \'YouTube Channel URL\';

    // Remove old fields
    unset($profile_fields[\'aim\']);
    unset($profile_fields[\'yim\']);
    unset($profile_fields[\'jabber\']);

    return $profile_fields;
    }
    ?>
要删除用户名(以及其他字段或标题),请使用jQuery:

<?php
add_action(\'admin_head\',\'hide_personal_options\');
function hide_personal_options() { ?>
    <script type="text/javascript">
    jQuery(document).ready(function($) { 
    $(\'#your-profile > h3\').hide(); // removes all headers
    $(\'#your-profile > table:first\').hide(); // remove the entire Personal Options table
    $("#nickname,#display_name,#user_login,#url").parent().parent().remove();  // remove nickname, display name, username, website fields, etc.
    });
    </script>
<?php
}
?>

SO网友:Pontus Abrahamsson

如果要删除某些字段,只需unset 它是这样的:

function my_new_contactmethods( $contactmethods ) {
     // Remove Yahoo IM
     unset( $contactmethods[\'yim\'] );

    return $contactmethods;
}
add_filter(\'user_contactmethods\',\'remove_new_contactmethods\',10,1);

结束

相关推荐