bbPressのトピック、返信に編集ボタンを常に表示させる方法
bbpressとは掲示板機能が簡単に実装できるWordPressのプラグインです。
今回、bbpressで投稿したトピックの編集ボタンを常に表示されるようにしました。
知識が浅く手こずってしまいましたがWordPressのadd_filter機能の勉強にもなったので、実装できるようになった流れをまとめました。
やりたいこと
上記の編集ボタンを常に表示させて投稿内容を修正できるようにしたいです。
調べたこと
こちらは設定→フォーラムの画面です。
設定の編集という項目を修正すれば編集ボタンが常に表示されるようになりそうです。
注意書きに「チェックして、「0分」に設定すると常に編集できます。」とあるので、0を入力して設定を更新しました。
しかし何度やっても5という数字が自動的に反映されてしまいます。
何も入力せず設定を更新しても5が設定されるので、1以上の数字以外が入力されると自動的に5という数字が入るようにプログラムされているのでしょう。
そこで下記のサイトを参考にfunctions.phpをいじってみました。
参考:bbPressカスタマイズ本舗
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);
functions.phpに上記コードを付け加えるだけでやりたいことが実現できそうです。
実際に上記のコードをテーマファイルのfunctions.phpに追加してみました。
しかし、このようなエラーが出てしまいました。
Uncaught ArgumentCountError: Too few arguments to function no_edit_lock()
エラー分を確認するとコードの引数が適切ではないとのことだったので引数をlock_timeのみにしました。
すると、エラー文はなくなり編集ボタンが表示されるようになりました。
そのあと5分以上たっても編集ボタンは消えなかったのでやりたかったことが実現できました。
まとめ
bbPressのトピック、返信の編集ボタンを常に表示するにはfunctions.phpに下記のコードを書けばよかったです。
function no_edit_lock($lock_time){
return false;
}
add_filter( 'bbp_past_edit_lock', 'no_edit_lock', 1, 4);
フィルターフック(add_filter)というものは知識として知ってはいたものの、今回実際に使ってみることでフィルターフックを使えばを細かい機能の修正もできることがよくわかったので勉強になりました!