bbpressの投稿のユーザーメール欄の設定
-
bbpressのプラグインについての質問です。
トピックの中でユーザーが投稿する際、デフォルトの設定だと名前とメールが必須となっています。しかし、掲示板として名前だけを必須にしたい場合どのように設定すればいいのでしょうか?
-
下記URLのページが参考になると思います。
How do I set up real anonymous posting in bbpress forums?
(本当の匿名投稿はどのようにすればよいか?)
説明は英文ですが、名前もオプションにしてしまう例です。
終わりの方に小さくコメントがあり、WordPressへの組み込み方(bbPress用のプラグインフォルダを作ってファイルを置く)も記されています。このプラグインは/wp-content/plugins/empty-anonymous-replies-in-bbpress/のディレクトリにempty-anonymous-replies-in-bbpress.phpを作って、pluginのコードをコピペすればいいだけですか?functions.phpにこのプラグインを読み込むためのコードなどいりませんか?
コメント部分に次のように書いてあります。
This is a plugin, so we can create a file like /wp-content/plugins/empty-anonymous-replies-in-bbpress/empty-anonymous-replies-in-bbpress.php. Then we visit the plugin section in the backend and activate it.
プラグインのコードをコピペした後に、管理画面(backend)のプラグインのページを開いて有効化(activate)してね、と。wp-content/pluginsディレクトリは既にある筈です。
プラグインのコードをコピペした後にというのは、/wp-content/pluginsディレクトリの中に/empty-anonymous-replies-in-bbpress/ディレクトリを作って
そのディレクトリの中にempty-anonymous-replies-in-bbpress.phpを作って、そこにプラグインのコードをコピペするということですか?そのあとactivateするというのは、ファイルを作ってempty-anonymous-replies-in-bbpress.phpをつくったあとにプラグインの編集画面になにか項目が増えるのでそれを有効化するということですか?
何度も質問してすみません。前半(コピペまで)はその通りです。説明が下手なのは勘弁して下さい。
後半は、管理画面の「インストール済みプラグイン一覧」を見れば表示される筈です。他のプラグインと同様に、有効化や停止の操作ができる筈ですよ。
コピペ元が先頭と末尾に一行ずつ足りない(コピペ元に無い)ので
下記のようにコピペ後に足すのをお忘れなく。<?php: /** * Plugin Name: Empty Anonymous Replies in BBPress * Plugin URI: http://wordpress.stackexchange.com/a/133420/26350 */ ・・・中略・・・ return $email; } } ?>
すみません、タイプミスしてしまいました。
一行目に足す<?php:
は間違いで、正しくは<?php
です。詳しく教えていただきありがとうございます!
言われた通りにファイルをつくってプラグインを有効化してみたんですが、匿名の投稿が可能になりません。。。一応インストール済みプラグインの箇所にはEmpty Anonymous Replies in BBPressというプラグインが表示されてはいるのですが、うまくいきません。
有効化は、できていますか?
確かめ方は「インストール済みプラグイン」の画面で、Empty…プラグインの行に「停止」というリンクが表示されていれば有効化できています。
それから、もしもコピペ内容に間違いがあると、有効化できていても正しく動作しないので、面倒かもしれませんが内容を再確認なさってみてください。
昨夜試しにやってみたときは、フォーラムに新規トピックを匿名投稿できました。有効化はできています。
コピペ内容も<?php /** * Plugin Name: Empty Anonymous Replies in BBPress * Plugin URI: http://wordpress.stackexchange.com/a/133420/26350 */ add_action( 'init', array( 'WPSE_Empty_Anonymous_Replies', 'init' ) ); class WPSE_Empty_Anonymous_Replies { static protected $name = 'nobody'; static protected $email = 'nobody@example.com'; static public function init() { add_filter( 'bbp_filter_anonymous_post_data', array( __CLASS__, 'bbp_filter_anonymous_post_data' ), 11, 2 ); add_filter( 'bbp_pre_anonymous_post_author_name', array( __CLASS__, 'bbp_pre_anonymous_post_author_name' ) ); add_filter( 'bbp_pre_anonymous_post_author_email', array( __CLASS__, 'bbp_pre_anonymous_post_author_email' ) ); } static public function bbp_filter_anonymous_post_data( $retval, $r ) { if( self::$name === $r['bbp_anonymous_name'] && self::$email === $r['bbp_anonymous_email'] ) { // reset the input to skip writing cookies $retval = array(); // trick to activate the IP flood check $retval['bbp_anonymous_flood_check'] = '1'; } return $retval; } static public function bbp_pre_anonymous_post_author_name( $name ) { remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) ); if( empty( $name ) ) $name = self::$name; return $name; } static public function bbp_pre_anonymous_post_author_email( $email ) { remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) ); if( empty( $email ) ) $email = self::$email; return $email; } } ?>
としています。
こうしても名前とメールが必須な投稿画面になってしまいます。そうすると、基本に立ち返って確かめるのが良さそうです。
(私の手もとでは動きましたのでそう思います)WordPressのバージョン3.9.1を使っています。
bbPressプラグインのバージョン、いますぐ確かめられませんが最新だったと思います。他にもプラグインを入れている場合、他を停止すると改善しないか?
使っているテーマをWordPress標準のTwenty何々に変えると改善しないか?
等です。kitakayuさん
こうしても名前とメールが必須な投稿画面になってしまいます。
プラグインが正しく動いても、画面に名前とメールの入力欄が表示されたままになります。
required という文字も残ったままです。
けれど名前とメールアドレスを入れずにトピックを書き込めましたよ。
- トピック「bbpressの投稿のユーザーメール欄の設定」には新たに返信することはできません。