如何为每个用户设置个人主页?

时间:2012-09-02 作者:user11898019

我想让我的用户能够自定义网站的主页。例如,如果某人未登录,则只会显示默认类别。

一旦有人创建了一个帐户并登录,他/她就有机会add/follow\' 更多类别和主题(标记)以及搜索结果。这些新帖子将被添加到他们看到的主页上的流中。

我已经找了很多教程和插件,但没有找到很多。虽然有这种功能,但有一个高级主题。

类别监视纸板允许您为每个用户设置单独的主页:只需启用类别监视,用户就可以自己选择加载哪些主题
http://freetotry.me/pressboard/ -> 设置按钮(右上角)

我想复制类似上面的东西。但仔细想想,我不确定什么是最好的方法。

向url添加变量(http://codex.wordpress.org/Function_Reference/add_query_arg)并将结果保存在某处。之后,也许可以使用jQuery“规范化”url位置

1 个回复
SO网友:user11898019

找到并组合了一些似乎适用于类别的代码。因此,如果其他人遇到同样的问题,请留下代码。供参考。-Filter all queries with a specific taxonomy- Adding Custom User Profile data based upon Categories

下面允许用户在此配置文件上选择类别,然后frontpage将允许显示其所选类别。

//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\'] );
}

function my_get_posts( $query ) {
    // we only need to modify the query for logged in users
    if ( !is_user_logged_in() ) return;
    $current_user = wp_get_current_user();
    // assuming that the users interest is stored as user_categories meta key
    $user_categories = get_user_meta( $current_user->ID, \'user_categories\', true );
    $query->set( \'tax_query\', array(
        array(
            \'taxonomy\' => \'category\',
            \'field\' =>  \'id\',
            \'terms\' => $user_categories
        )
    ));
    return $query;
}
add_filter( \'pre_get_posts\', \'my_get_posts\' );

结束

相关推荐

Get_Categories仅获取主语言的类别

我试图在“content composer”中检索基于活动语言的项目类别。但我只从主要语言中获取类别,而没有从其他语言中获取类别。我的代码是:类别全部 $categories = get_categories(\'taxonomy=jw_portfolio_categories\'); if(!empty($categories)){ foreach($categories