wordpressのwpForoを導入しました

ワードプレス
この記事は約11分で読めます。

ワードプレスに掲示板を設置出来る!

ワードプレスはブログや頑張ってもECサイトの利用などしか出来ないと思っておりましたが、何とプラグインを導入するだけで掲示板を設置出来ると検索で出てきました。
こんな過疎ブログに掲示板なんか設置しても誰も書き込まないかも・・・と思いましたが、せっかくなので掲示板機能をつけました。

Forum

検索をしていると、bbPressというのとwpForoというのが有名で評価が良い様です。
この2つの中でbbPresは画像などを貼るのにプラグインが必要な様だったので、wpForoにしました。

簡単インストール

インストールと言ってもプラグインを入れるだけなので、プラグイン画面から「新規追加」を押してwpForoを検索するだけ。
wpForo

後は有効化してあげるだけです。
これで設置が済んだので、サイドバーなどにフォーラムのリンクを貼ってあげればOKです。
wpForo

何て簡単なんだ、凄すぎるぞワードプレス。
設置した掲示板の詳細な設定は、管理画面のフォーラムから設定出来ます。
ちょちょっとメニューを操作するだけでそれっぽくなりました。
wpForo

楽しく試運転をしていたのですが、問題が・・・。

登録ユーザーじゃないと返信のエディターが出てこない?

これは私の環境の問題かもしれません。
誰でも気ままに書き込める様に登録しなくても書き込める様にしたかったのですが、今日の所はこの問題は解決出来ませんでした。
エディタの言語ファイルっぽい所の読込でエラーが出ていたので、エディタをwordpressの付属の物にしたらエラーは出ないかもしれません。

この問題は置いておいて次は登録でまた問題が起きました。

Sorry, something wrong with your data

何度登録しても上手く登録できません・・・。
そういう時は検索するしかないです。
wpForoのオフィシャルのHPにも掲示板があったので、「Sorry, something wrong with your data」で検索した所丁度いいのが引っかかりました。
wpForo

こっちのイシューに書いてあるよとの事なので、その問題のイシューと解決方が書いてありました。
「この問題はwpForoの問題ではなく、wordpress本体の問題なんだ。
キャッシュを消して再トライしてくれ。」的な事が書いてありました。

This is not a wpForo issue, this is a general issue on your website. This error is displayed when WordPress form security system doesn’t work. This system is called wp_nonce.

Some good articles about WP Nonce

WordPress Nonces: What Are They Really And How they Work?
In depth explanation of WordPress Nonces, what they are and what they are not. Secure your themes and plugins and protect your users against XSRF.
403 Forbidden

wpForo topic and post forms are also connected to this system and as far as I see the form validation doens’t work. Something is wrong with your website sessions, cookies or cache. Please disable all plugins delete all caches and test it again. it should work fine.

If you still have an issue, we can do a deep test and fix it for you. Just contact us via support[at]gvectors.com email address and send admin login details.

 

Can't add topic to WPForo. Keep getting error message "Sorry...
Please help. Everything was working fine, and now I can't add a topic. What is going wrong? My forum is here:/p>

そんな所に落とし穴があったのかと思い、キャッシュを消してみて再トライ。
私の場合は、プラグインにWP Fastest Cache、wordpressテーマにcocoon、借りているレンタルサーバーのconoha wingで更にキャッシュしているので、3つとも消してみます。
WP Fastest Cache

cocoon

conoha wing

3つもあると大変ですね、少なくともwordpress側ではキャッシュは1つに絞った方がいいかもしれないです。
ちなみにこのconoha wing、本当にキャッシュされているのか実感しにくいのですが、結構性能が良い様です。
私もconoha wing独自のキャッシュシステムからCloudflareに変えようかなと思ったりしましたが、Cloudflareは広く使われているサービスなので、悪いサイトがCloudflareを使っていると巻き込まれてサイトの評価が下がるそうです。

数記事しかないこんなブログなので、巻き込まれてもあまり変わらないのですが、しばらくは素直にconoha wingのキャッシュを使っておこうと思います。

conoha wing

とまぁキャッシュの話はいいとして、3つのキャッシュを消したところ、無事登録出来ました!

しかし、ある事に気づいたのでした。

日本語のユーザー名で登録できない

「このユーザー名は使用できない文字を含んでいるため、無効です。有効なユーザー名を入力して下さい」。
エラー

これは困りました、どこに原因があるのか予想がつきません。
ただ分かっているのは、wpForoは日本語のユーザー名でも登録出来るという事です。
その根拠なんですが、cocoonのフォーラムでもwpForoを使っている様で日本語ユーザー名でも登録出来ました。

画像を張り付けちゃうとまずそうなので、wpForoを使っていると書いてあるページ。

https://wp-cocoon.com/how-to-registration/

そしてフォーラム内には日本語のユーザー名の方々がたくさんいらっしゃる。
なので絶対解決出来ない問題ではない事が分かりました。
ただcocoonの作者の方はwordpressのすみからすみまで知り尽くしているような方なので、私に解決できるか分からない。
またcocoonのフォーラム内でも検索してみましたが、私の検索力が乏しいのか見つかりませんでした。

色々と調べてみたところ、
・wpForoの設定で解決できる問題ではなさそう(おそらくです。解決出来たらすいません。)
・wpForoで使うデータベースの設定では日本語を受け入れてくれそう。
wpForo

・wpForoの問題じゃないかもしれない(先ほどの問題から)

とりあえず色々な検索文字で検索したところ、下の記事がヒットしました。

https://elearn.jp/wpman/column/c20180320_01.html

あぁwpForoの記事じゃないか・・・でも一応試してみるか。
上の記事はwordpressのユーザーを日本語にするという物です。
ユーザー名は確かにアルファベットだし、日本語は試してない。

上の記事からの引用です。

add_filter( 'sanitize_user', 'allow_japanese_as_username', 10, 3 );

function allow_japanese_as_username( $username, $raw_username, $strict ) {
	if ( $strict ) {
		$username = wp_strip_all_tags( $raw_username );
		$username = remove_accents( $username );
		$username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
		$username = preg_replace( '/&.+?;/', '', $username );

		$username = preg_replace( '|[^a-zA-Z0-9ぁ-ゖァ-ヺ一-龢豈-頻 _.\-@]|', '', $username );
		$username = trim( $username );
		$username = preg_replace( '|\s+|', ' ', $username );
	}
	return $username;
}

ちなみに先に書いちゃいますが、このコードをファンクションPHPに付け加えると、日本語ユーザー名で登録出来ます。
少しいじるとすればおそらく10文字以内なので、10を30くらいに変えて下記の様にするくらいです。


add_filter( 'sanitize_user', 'allow_japanese_as_username', 30, 3 );←ここを変えただけ

function allow_japanese_as_username( $username, $raw_username, $strict ) {
if ( $strict ) {
$username = wp_strip_all_tags( $raw_username );
$username = remove_accents( $username );
$username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
$username = preg_replace( '/&.+?;/', '', $username );

$username = preg_replace( '|[^a-zA-Z0-9ぁ-ゖァ-ヺ一-龢豈-頻 _.\-@]|', '', $username );
$username = trim( $username );
$username = preg_replace( '|\s+|', ' ', $username );
}
return $username;
}

これなら少し長い名前の人も登録出来そう。
で、実際やってみたところ・・・
wpForo

キター!日本語でユーザー名が登録出来ました。

でもまだ問題は2つ残っているのです。

残る問題

実のところ、自分で書き換えた10→30で日本語だと15文字までいけると思っていました。
がしかし今のところ5文字程度しか受け付けてくれない。
データベースの見るところが違うのか、そもそもそんな長い名前を受け付けてくれないのか要調査です。

後は、ログインしても結局返信ボタンを押してエディタが開くと思ったら、バグったままです。
これはせっかく返信しようと思ってくれた方に申し訳ないので、早急に直さないといけません。

という訳でとりあえずwpForoで日本語でも登録出来るよという報告です。
またいじると思うので、何かあれば報告します。

追記:エディタは正常に表示されるようになりましたが、ちょっと問題があります。

エディタの表示の問題はプラグインでした

私の環境では登録してくれた方が返信を押した時に上手くエディタが表示されませんでした。
その原因は「Async JavaScript」というjava scriptを非同期読み込みか、遅延読み込みさせるプラグインが問題でした。

wpForo

ただこのプラグイン結構大事なのです。
その理由はこのプラグインを入れるとページの読み込み速度がかなり上がるのです。
PVが凄いブログを運営したことないので、説得力に欠けるのですが、ページの読み込み速度は早い方がSEOに有利らしいです。(その前に勿論ページの内容ですが)
まぁgoogle adsenseを入れてしまうとページスピードは下がるのですが・・・。
そこはまた今後対策していきましょう。
今このブログはadsenseの審査の為に審査用のコードを張り付けているので、そこまで早くないです。
ただ張り付ける前は自分でも驚くほどにめちゃはやでした。
ページスピード

cocoon使ってるんだから、それくらいは当たり前でしょな感じもあるのですが、この時はグーグルのページスピードを測るページで改善する項目が無くなっていました。(今はあります)
そんなページ表示速度に役立つプラグインなので、外す理由が無いので、このプラグインの「Script Exclusion」(除外設定)に「editor.min.js」を加えました。
それだけです。

それでエラーも出なくなり、登録した方は返信用のエディタが表示される様になりました。(まだ出てなかったら教えて下さい・・・)

ただまた1つ問題が出てきました。

登録した方が管理ページに入れる

正確には管理ページには入れるが、特に何も出来ないのですが、wordpressはそこから何かされる可能性があるので、管理ページのアドレスを変えておくのが一番早いです。
そこで約に立つのが「WPS Hide Login」。
このプラグインただ管理ページのURLを変えるだけですが、それだけでサイトを乗っ取られたりするリスクは大幅に減ります。
WPS Hide Login

使い方は簡単。
インストールして有効にし、設定を開くとログインとアドミンのページのURLを好きなURLに変えられるので、設定するだけです。
手動でファイル名を変える方法もありますが、どちらかと言うとこのプラグインを使った方が簡単だったので、この方法にしました。
wpForoを導入した方はログインページのアドレスを変える事をおすすめします。
でもwpForoでwordpressユーザーと分けるっていう設定にした気がするんだけどなぁ・・・。

コメント

Translate »
タイトルとURLをコピーしました