BuddyPress

BuddyPressはどんなテーマでも動くことを知って

WordPressはbuddypressをすすめています

BuddyPressを導入していて困るのはBuddyPress対応のテーマ探し。あれ?twentyシリーズでも動いているぞ?と気づいたために調べてみました。

WordPressはbuddypressをすすめています

BuddyPressプラグイン内に入っているbp-defaultテーマを使う

グループ機能やアクティビティストリーム、などを見るためにもBuddyPressが動くテーマが必要です。と今まではそうでした。BuddyPressプラグイン内に入っているbp-defaultテーマの子テーマを作ってというのがテーマをカスタマイズするための第1歩的な印象でした。

BuddyPressはどんなテーマでも動く

しかし、現在はBuddyPress1.7から、どんなテーマでも動くように改善されました。Version 1.7 · BuddyPress Codex

twentyシリーズはもちろん、STINGERだって動きます!これは面白い発見!あとはCSSでデザインを変えれば独自のテーマが作れるはずです。

bp-legacyフォルダ

BuddyPressのbp-templateフォルダのbp-legacyフォルダの中に出力されるBuddyPressのhtmlやCSSが入っています。これを使ってWordPressのテーマにBuddyPressに対応させているようです。

BuddyPressテーマを探す

やっぱりカスタマイズなんて面倒くさいということであればBuddyPressを使う前提でカスタマイズされて配布されているテーマを使うのがよいでしょう。日本語だと下記サイトがわかりやすかったです。

BuddyPressのテーマは外国では有料で多く配布されていて多機能なのでごちゃごちゃ考えたくない人はそっちのほうが便利ですよ。

BuddyPress専用のfunctions.php、bp-custom.phpについて気づいたこと

WordPressはbuddypressをすすめています

BuddyPressについて調べているとbp-custom.phpのことについてよく聞きます。BuddyPressを使うとき関数はfunctions.phpではなく、bp-custom.phpを使えと言われるのですが、functions.phpに書いていても動いているので、別にbp-custom.phpに書かなくてもいいのではと気になったので調べてみました。

日本語でbp-custom.phpについて書かれている記事

ITかあさんのページでBuddyPressのことをよく勉強しています。この記事にそって、bp-custom.phpを作って書いていましたが、途中でfunctons.phpに書いたBuddyPress関数が動いていることに気づいて悩み始めました。

英語でbp-custom.phpについて書いてある記事

BuddyPressについて調べるときは英語で書かれているBuddyPress Codexです!英語プラス情報量が多すぎてわかりづらいですが、BuddyPressに関する大元はここに書かれています。bp-custom.phpについてはbp-custom.php · BuddyPress Codexにかかれています。

bp-custom.phpについての要約

英語で書いてあることを要約するとfunctions.phpとbp-custom.phpを比較すると

  • bp-custom.phpは wp-content/plugins/フォルダにあると機能すること。つまりテーマに関係なくBuddyPressプラグインが有効になっている状況下でbp-custom.phpに書いた設定や関数が機能するようになること。
  • bp-custom.phpはBuddyPressプラグインの設定をを上書きできること

とあります。functions.phpに書いてもいいけど、BuddyPressがどんなテーマでも使えるようになった今、BuddyPressがない時と混ざらないようにするためにも、自作ならbp-custom.phpのほうが無難ですね。

BuddyPressのユーザー登録にスパマーが多い時の対処法

wangguard

BuddyPressを導入して1週間。なぜか分からないが、英語スパマーに目をつけられて、ユーザー登録をされる。最初はグループを作り、記事を残していったが、グループ作成を廃止したところアクティビティにもコメントを残すようになっていった。これはまずいと思い対策を考えた。

ログイン履歴を確認できるCrazy Boneの導入

ログイン履歴を確認することができるCrazy Boneプラグインでどんな国から登録がされているのか確認をしてみた。BuddyPressにも対応しているようで、ユーザー登録をして有効化する前の履歴もbp_account_not_activatedエラーとして記録に残る。

crazy-bone-buddypress

指定したIPアドレスをブロックできるWP-Banの導入

Crazy BoneではIPアドレスが分かるので、このIPアドレスをブロックできないかと考えたところ、WP-Banというプラグインでできることが分かった。しかし1つ1つ入力するのがめんどい…

BuddyPress対応のセキュリティブラグインWangGuardの導入

BuddyPress対応のプラグインを探していたところWangGuardというセキュリティプラグインがあることが分かり導入をしてみる。このプラグインでできることはいろいろあるが全面英語だったので、ひとまず、ユーザー登録をする際に質問項目設定し答えを入力するよう求めることができるようになる。

wangguard

いつも通りインストールし有効化を行うと、管理画面のメニューにWangGuardの項目ができる。configurationをクリックするとAPIキーの入力を求められるのでWangGuardサイトに登録をしてみる

wangguard-configuration

 

WangGuardサイト登録

WangGuardサイトでメールアドレス、サイト名など入力をする。user typeにはindividualを選んで、sendボタンをクリックすると入力したメールアドレス宛に有効化するためにリンクをクリックしてくれメールが送られてくるので、クリックする。これで登録を完了

wangguard-register

 

WangGuardAPIキーを発行する

登録が完了すると、上部のメールアドレスとパスワード入力欄からログインすることができる。緑のボタンがログインボタン。わかりずらい

次ページでAPIキーが発行されているので、コピーして自分のサイトに戻ってAPIキーを貼り付け、update optionsのボタンをクリックすれば完了

 

sequrity questionを設定

次にsequrity questionタブに移動して、質問内容と答えを入力する。ここで入力したものはユーザー登録画面に必須項目として表示される。

wangguard-question

今回は英語ユーザーの登録を除外したいために日本人なら誰でも分かる質問に漢字で入力するように求めた。ゲームや地域サイトを作るなら、ここにマニアックな質問をしておけば余計なユーザーが増えることもないかもしれない。

 

wangguard-ansewer

WangGuardでできること

  • Allow reporting users from Posts admin screen.
  • Delete users when reporting them to WangGuard.
  • Show the ‘report user’ button on BuddyPress.
  • Disable WangGuard menu from WordPress & BuddyPress AdminBar.
  • Check for duplicated gmail.com and googlemail.com emails on sign up.
  • Remove the generator META tag.
  • Enable honeypot fields (signup trap fields). Some themes has problem with honeypot fields. If you have some problems with those fields, disable this option

など設定をすることができる。翻訳して必要に応じで設定するとよいかもしれないが、私はデフォルトのままで。まだまだ設定画面はあるのだが日本語の情報が少ない

WangGuardまとめ

akismetはコメントのスパム対策のようなのでユーザー登録やBuddyPressのアクティビティ(カスタム投稿)には反応しない?ようなのでBuddyPressを使って英語スパマーに困っている人がいたらぜひWangGuardを導入してみてください。

 

 

 

BuddyPressでログアウトできない状況を改善

WordPressはbuddypressをすすめています

BuddyPressをインストールして2日目。ログアウトできない状況に気が付いた。ツールバーからはログアウトできるのだが、サイドバーに貼り付けたログアウトボタンからでは403エラーが返ってくる。

BuddyPressでログアウトできないときの改善方法

ロリポップ403エラー

ロリポップのレンタルサーバーで動かしているので、ロリポップ、403エラーでgoogleで検索をすると以下のリンクが出てきた。

結論から言えば、WAFを無効にすることで改善した。

WAFとは

WAFとはウエブアプリケーションファイアウォールというもので、不正アクセス、改ざんを防ぐための機能でロリポップは標準で有効になっている。
ということは基本的には常時ONにすべきものであると、以下のリンクも言っている。

しかし不特定多数のユーザーがをとなると、どうしたらよいものか。

BuddyPressでプラグインなしでできる設定(その2)

WordPressはbuddypressをすすめています

BuddyPressの昨日の続きです。

BuddyPressのユーザー権限の変更

BuddyPressはいろいろな人に使ってもらわないと意味がないので、誰でも登録ができる様にならなければなりません。

管理画面>設定>一般設定>メンバーシップより「だれでも登録ができるようにする」にチェックしましょう。

ユーザーの権限については、投稿者、寄稿者、購読者のあたりから選びましょう。購読者の権限でもアクティビティには入力ができるようです。プロフィールの写真もアップロードすることができます。BuddyPress専用の権限があるのかもしれません。(この辺りはじっくりと検証してみたい。)

BuddyPressのテーマの変更

どんなテーマでも固定ページの設定をすればアクティビティやメンバー一覧のページができますが、mixiのようなページにするにはBuddyPress用のテーマが必要です。

BuddyPressのデフォルトのテーマはプラグインの中にあります。

wp-content>plugins>buddypress>bp-themas>bp-dafault

 bp-defaultフォルダをFTPソフトなどでダウンロードし、wp-content>themasにアップロードします。カスタマイズするときはこの子テーマを作って行います。

BuddyPressのウィジェットを設定

bp-dafaultテーマを使用した時ウィジェットが自動で追加されます。追加されるのは以下の7つ
  • オンライン状況
  • グループ(設定でユーザーグループをON)
  • サイト全体通知
  • メンバー
  • ログイン
  • 友達(設定で友達関係をON)
  • 最近の登録メンバー

bp-dafaultのテーマではログインの箇所が既存であるので、どちらかを削除。

アクティビティストリームをTOPに表示

BuddyPressには日記でなく、アクティビティというタイトルのないひとことコメント書きの欄があるので、これをTOP画面に持っていきます。

管理画面>設定>表示設定>フロントページの表示を固定ページのactivityページにすることでTOPページに表示することができます。

パーマリンクの変更

BuddyPressではデフォルトのパーマリンクでは使えないようなので、それ以外にします。

管理画面>設定>パーマリンク設定で変更できます。不特定多数で使うことを考えると投稿名だと日本語スラッグになってしまうので、数字ベースのほうがいいのかもしれません。

BuddyPress基本設定終わり。

ひとまず、プラグインなしでガリガリしないでできる基本設定について行ってみました。

BuddyPressを使って会員制サイトを改めて作ってみる(その1)

WordPressはbuddypressをすすめています

愛知県豊川市にはみてみンというポータルサイトと言っているが実質的にはmixiのような会員サイトがあり、2015年3月に閉鎖する予定です。だったら作ってみようかと思い立ち、BuddyPressをいじくっています。

コミュニティサイトを作るCMS選びでWordPressを選択

mixiのようなコミュニティサイトを作るために、WordPressを使います。コミュニティサイト作成を前提として作っているOpenPNEやXOOPSでないのかというと、数年前と比べて成長が少ないので、このまま使い続けても使いづらくなると思いました。

そして次が1番の理由になりますが、なぜわざわざWordPressなのかというと、私がWordPressしか使えないからです。WordPressのBuddyPressというプラグインを用いることで会員制サイトを作成することができます。

BuddyPressも成長が少ないような気がしますが…

BuddyPressで簡単にWordPressをコミュニティサイト化

Buddypressにはメンバー登録、友達関係、グループ作成、非公開でメッセージを送りあえる機能、Facebookのようなタイムライン(アクティビティ)があります。mixiのような日記機能、質問トピックはデフォルトではないようです。プラグインの追加やカスタマイズすればできそうです。

WordPressを使っているのであればいつも通りにインストール作業をすればOKです。2014年10月現在BuddyPressがおすすめにあるのが腑に落ちません。今だに多くのダウンロード数がありますが、挫折と、どういったところで使うのかを悩んでいるのではないでしょうか?

WordPressはbuddypressをすすめています

BuddyPressを日本語化の仕方

BuddyPressを有効化すると英語でwelcome画面になります。日本語ファイルは入っていないので、よそから持ってきて日本語化を行います。

buddypressabout

GlotPressのBuddyPressページから日本語ファイルをダウンロードすることができます。英語サイトです。「Active」と表示されている数字でかかれた最新バージョンをクリックし、次のページの言語の一覧から「Japanese」を選択すると上記のような画面が表示されます。

buddypress日本語化

 

下のほうにある選択ボタンのMachine Object Message Catalog(mo)を選んでからExportをクリックします。

buddypress-2.0.x-ja.moというファイルのダウンロードが始まります。このファイル名をbuddypress-ja.moに書き換えて、FTPソフトでwp-content>/langagesにアップロードしてください。(他のプラグインの日本語化ファイルと場所が違います)

Buddypressの設定画面を開きなおして日本語化されていればOKです。しかし一部日本語化されていない部分が残っています。(日本語化率97%)

BuddyPressを有効化すると自動的に固定ページにActivityとMember、管理画面のサイドバーにActivity(カスタム投稿)、ツールと設定にBuddyPressのリンクが作られます。

設定>BuddyPressよりBuddyPressの機能一覧を見てみましょう

BuddyPressの設定(機能一覧コンポ―ネント)

buddypress設定

会員制サイトを作るための一通りの機能があります。作りたいものによってチェックマークをオン/オフしましょう。

BuddyPressの使い方を説明した他のサイトでフォーラム機能についてがあるようですが、リタイア済みのところにグループフォーラムは廃止されましたとあります。bbpressプラグインを使用することになったようです。

BuddyPressの設定画面(固定ページ)

buddypress固定ページ

次にコミュニティサイトに必要なページを固定ページで作ります。メンバーとアクティビティストリーム(タイムライン)については自動的につくられますが、登録画面と、有効化画面は自動的に作られないので、固定ページを作り関連付けます。スラッグを英語にしたかったので私は登録はregister、有効化はactivateにしました。

BuddyPressの設定(メイン・アクティビティ設定)

buddypress設定

メイン設定とアクティビティ設定です。必要に応じてオン/オフをします。しいて言えばツールバーのチェックをはずすぐらいでしょうか。

さぁ!これで設定完了です。TOP画面を表示して、Activityページで入力してみましょう。

twentyfourteenのテーマを使用するとダサイ、他のテーマでもBuddyPressの固定ページで設定した画面は表示されます。既存の会員サイトのような表示にするにはBuddyPressのデフォルトのテーマを使用したほうがよさそうです。

つづく。