BuddyPressの特定ページがログインしないと見れない

BuddyPressを複数のサーバーにインストールして検証しているのですが、ある環境でログインしないと見れないページがあることがわかりました。

見れないページとは
・グループページ
・メンバーページ
・活動

他にもあるのかもしれませんが、確認したのは上記です。
BuddyPressをインストールした状態では、本現象は起こらないのですが、あるプラグインをインストールすると発生します。

そのプラグインはこちら
BP-Registration-Options
このプラグインはBuddyPressの新規ユーザー登録を承認制にするものです。

上記にチェックが入っている状態で該当ページアクセスするとアカウント作成ページに飛ばされます。チェックを外せはこの動きは回避され、ログインしなくても該当ページにアクセスすることができます。

BuddyPress Registration Optionsの承認者のレベル設定

BuddyPress Registration Optionsの管理者のレベル設定

BuddyPressで新規ユーザー登録を承認制にするプラグイン「BuddyPress Registration Options」はユーザー登録後、管理者が管理画面でそのユーザーを承認するまで、そのユーザーは使用できません。
が、管理者とは最高権限を持つユーザーのことで、複数の人間で管理しているような場合、これでは都合が悪いことがあります。
そこで、ある権限を保有するユーザーまで承認できるようにします。

bp-registration-options/includes/admin.php
を変更します。

136行目あたりの

 

のadministratorの部分を適当なユーザーロールに書き換えます。
ユーザーロール名についてはこちらのページを参照

設定したロールよりも上位の権限をもつユーザーは新規登録ユーザーを承認することができるようになります。

BuddyPressのユーザープロフィールから不要なリンクを取り除く

BuddyPressにユーザーを登録し、プロフィールを入れると下の画像のように不要な部分(赤線)にリンクが設定されることがある。このリンクをクリックすると同じ内容のユーザーをまとめて表示してくれるのだが、それが不要な場合もある。

リンクが設定されてしまっている状態

そこでこのリンク設定を削除し、リンクされていない状態にしたいと思います。

BuddyPressフォルダ内の

bp-xprofile/bp-xprofile-filters.php

を編集します。

上記を検索し、コメントアウトすることでメールアドレス以外からリンクを消すことができます。

BuddyPressで特定のユーザーをメンバー一覧に出さない

BuddyPressでSNS的なサイトを運用するとき、メンバーページには当然全てのユーザーが表示されます。ところがSNSには参加しないけどBuddyPressを管理したいユーザーが居た場合、メンバーページにそのユーザーが表示されてしまうと都合が悪いときがあると思います。
そんな管理ユーザーをどうやってメンバーページに表示させないようにするか調べたところデータベースの値を操作することで非表示にすることができました。

画像はphpMyAdmin

phpMyAdmin

phpMyAdmin
wp_userのuser_statusの値を0以外にします。
画像では100にしています。

メンバーページには表示されませんが、その他の操作は可能です。ですがSNS内でなんらかの活動(コメント投稿、グループ参加など)をしてしまうとせっかく非表示にしたユーザーの存在がバレてしまいますので注意が必要かな。