如何只允许用户查看他们自己的BuddyPress配置文件?

时间:2012-05-29 作者:Dwayne Charrington

我目前正在开发一个使用Wordpress+Buddypress的社交网站,客户要求个人资料页面暂时不公开。基本上,客户端可以让登录用户查看自己的配置文件,但如果他们尝试查看其他用户的配置文件页面,则应重定向到主页。

我找到了函数:bp\\u is\\u my\\u profile(),并尝试在members/single/profile的顶部使用以下代码。php文件将用户重定向到别处,但它似乎不起作用。有什么指示吗?

<?php
if ( !bp_is_my_profile() )
{
    wp_redirect(site_url(), 302);
}
?>

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

我自己解决了这个问题,这很容易,我很惊讶没有其他人提供答案。话虽如此,解决方案是添加几行代码,检查您正在查看的配置文件的作者ID,并将其与当前登录用户的ID进行比较。

此代码位于members/single/profile的顶部。php

<?php
    // Global $bp variable holds all of our info
    global $bp;

    // The user ID of the currently logged in user
    $current_user_id = (int) trim($bp->loggedin_user->id);

    // The author that we are currently viewing
    $author_id  = (int) trim($bp->displayed_user->id);

    if ($current_user_id !== $author_id)
    {
    // redirect to home page url
        wp_redirect(home_url());
        exit();
    }
?>

结束

相关推荐

如何在带有导航的BuddyPress个人资料上按作者显示所有帖子

我正在为wordpress使用Buddypress,并试图在用户的个人资料页面上显示一个循环。我使用无限滚动加载更多页面,但第2页的链接并不指向一组帖子,而是将我带到一个空白页面模板,但我确实得到了此链接。\"http://mysite.com/exampleuser/page/2\" 关于如何正确制作此页面,您有什么想法吗?以下代码段位于profile-loop.php.<?php global $bp; global $paged; global $