是否将额外的配置文件字段作为选择框?

时间:2011-11-20 作者:Philipp

我想在Wordpress中添加更多配置文件字段。它适用于普通文本框:

<input type="text" name="gender" id="gender" value="<?php echo esc_attr( get_the_author_meta( \'gender\', $user->ID ) ); ?>" class="regular-text" /><br />

但当然,我不希望我的用户输入;男性“;或“或”;女性;。所以我需要一个选择框!:)

请您帮助我如何更改上面的代码以获得选择框?!

非常感谢!

1 个回复
最合适的回答,由SO网友:Joshua Abenazer 整理而成

在函数中放置以下代码。php

<?php
    add_action( \'show_user_profile\', \'show_extra_profile_fields\' );
    add_action( \'edit_user_profile\', \'show_extra_profile_fields\' );

    function show_extra_profile_fields( $user ) { ?>
        <h3>Extra profile information</h3>
        <table class="form-table">
            <tr>
                <th><label for="gender">Gender</label></th>
                <td>
                    <select name="gender" id="gender" >
                        <option value="Male" <?php selected( \'Male\', get_the_author_meta( \'gender\', $user->ID ) ); ?>>Male</option>
                        <option value="Female" <?php selected( \'Female\', get_the_author_meta( \'gender\', $user->ID ) ); ?>>Female</option>
                    </select>
                </td>
            </tr>
        </table>
    <?php }

    add_action( \'personal_options_update\', \'save_extra_profile_fields\' );
    add_action( \'edit_user_profile_update\', \'save_extra_profile_fields\' );

    function save_extra_profile_fields( $user_id ) {
        if ( !current_user_can( \'edit_user\', $user_id ) )
            return false;

        //typo fix
        update_user_meta( $user_id, \'gender\', $_POST[\'gender\'] );
    }
?>

结束

相关推荐