根据类别添加自定义用户配置文件数据

时间:2011-09-13 作者:Houghster

根据此处找到的代码:How To Add Custom Form Fields To The User Profile Page?

我如何修改它,以便用户可以根据我在博客中设置的类别选中几个框中的一个。

E、 g.如果我有类别:

ApplesOrangesBananas

我希望这些出现在用户配置文件区域,每个旁边都有一个复选框,以便用户可以选择他们最喜欢的水果。

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

下面是一个示例

//create the user category fields
add_action( \'show_user_profile\', \'add_user_categories\' );
add_action( \'edit_user_profile\', \'add_user_categories\' );

function add_user_categories($user ){
    ?>
    <table class="form-table">
    <tr>
        <th><label for="user_categories"><?php _e("User categories"); ?></label></th>
        <td>
            <?php
                $data = get_the_author_meta( \'user_categories\', $user->ID );
                $args = array( \'hide_empty\' =>0, \'taxonomy\'=> \'category\');
                $categories=  get_categories($args);
                if ($categories){
                    foreach ( $categories as $category ){ 
                        if(in_array($category->term_id,(array)$data)) {
                            $selected = \'checked="checked""\';
                        } else {
                            $selected = \'\';
                        }
                        echo \'<input name="user_categories[]" value="\'.$category->term_id.\'" \'.$selected.\' type="checkbox"/>\'.$category->name.\'<br/>\';
                    }
                }
            ?>
        </td>
    </tr>
    </table>
    <?php
}

//save the user category fields 
add_action( \'personal_options_update\', \'save_user_categories\' );
add_action( \'edit_user_profile_update\', \'save_user_categories\' );

function save_user_categories( $user_id ){
    if ( !current_user_can( \'edit_user\', $user_id ) ) { return false; }
    update_usermeta( $user_id, \'user_categories\', $_POST[\'user_categories\'] );
}
并获取存储的数据,只需使用:

$data = get_the_author_meta( \'user_categories\', $user->ID );
以及$data 将是一个包含用户选择的所有类别的数组。

结束

相关推荐

post categories

我有一些帖子,我想把它们分为三类:新闻、事件和新闻稿,然后我有三个页面使用相同的模板。我想在相关页面上显示这些帖子,以便在新闻页面上发布新闻帖子。有人能告诉我什么是最好的方式吗。我想这很简单,但我对Wordpress还是相当陌生的。非常感谢,