私は現在Wordpress + Buddypressを使用してソーシャルネットワークのようなサイトを開発しています、そして、クライアントはプロファイルページが当面公開されないように頼みました。基本的にクライアントはログインしているユーザーが自分のプロフィールを見ても問題ありませんが、他のユーザーのプロフィールページを見ようとするとホームページにリダイレクトするはずです。
関数bp_is_my_profile()を見つけて、members/single/profile.phpファイルの先頭にある次のコードを使用してユーザーをリダイレクトしましたが、うまくいかないようです。任意のポインタ?
<?php
if ( !bp_is_my_profile() )
{
wp_redirect(site_url(), 302);
}
?>
私は自分自身でこの問題を解決しました、それは非常に簡単でした、そして、他に誰も答えを提供しなかったことに驚きました。そうは言っても、解決策は、表示しているプロファイルの作成者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();
}
?>