WordPressで掲示板を作成するならbbPressプラグインを導入するのが一般的ですね。私も一つ作成したのですが、管理者権限がない、普通のユーザー(参加者権限)がフォーラムにトピックスを立てたりコメントした場合、管理画面で設定した分数以上時間が経つと、「編集」リンクが非表示になり、その後は編集が一切できなくなってしまいます。「編集」を常に表示させて、ユーザーがいつでも自分の投稿・コメントを編集できるようにする方法がありましたのでご紹介します。

bbPressの設定画面には、何分間までなら編集できるかを設定する項目があります。

フォーラムの設定 投稿後編集を許可しない時間の欄

bbPress日本語化ファイルで日本語にしていて、「投稿後編集を許可しない時間」となっていますが、実際は「投稿後編集ができる時間」とする方が正しいかと思います。デフォルトでは5分となっており、投稿後5分以内なら投稿者は編集ができるけれども、5分以上経ったら編集ができなくなってしまいます。

より正確には、「編集」というリンクが非表示になってしまいます。

コメント欄の「編集」欄が消える

「投稿後編集を許可しない時間」を999999など、どれだけ大きな時間にしてもいつかは消えますし、逆に「0」にすると速攻で「編集」リンクは消えます。この期限制限を無効化する方法が、デフォルトでは用意されていないんですね。

どうしてこんなおせっかいな要らない機能(笑)があるのかはわかりません。管理・運営上やセキュリティの問題かもしれませんが、自分の書いた投稿、コメントに問題や間違いを見つけたら、放ってはおけないのが日本人気質な気がします(笑)

いろいろ調べてみて、bbPress本家のSupportフォーラムには「数字じゃなくて x とか文字を入れれば、認識できなくなって機能しなくなるよ!」という裏ワザがあったのですが(笑)、結構古い投稿で、現時点では数字以外は入力できないようになっています。ちなみに空欄のままにして「保存」をすると、ちゃっかりデフォルトの「5」が自動入力されちゃいます。ホントにうっとおしい!(笑)

と、長々と引っ張ってしまいましたが、編集のリンクを設定時間後に非表示にするフィルターがbbPressにセットされているので、そのフィルターを無効にするフィルターフックをfunctions.phpに噛ませればいい、という書き込みをbbPressフォーラムに見つけました!

Topic: Unlimited edit time · bbPress.org

以下のソースコードをfunctions.phpに記述すればOKです!

function no_edit_lock($retval, $cur_time, $lock_time, $post_date_gmt){
	return false;
}
add_filter( 'bbp_past_edit_lock', 'no_edit_lock', 1, 4);

bbp_past_edit_lockが「編集」リンクを非表示にするフィルターなので、それを何もさせずにただreturnさせて無効化している、というわけですね。胸のつかえが取れました(笑)

地味~なワザですが、意外と悩んでいらっしゃるbbPressユーザーの方はいらっしゃるかと思います。参考になれば幸いです。