この記事は、本サイトにbbpressを設置した際に行ったカスタマイズ内容のメモです。
カスタマイズ経緯
bbpressはトピックの作成や返信時に、htmlのタグを使用することができる。
そして<script>タグが普通に使えたりする。
やり方によっては、勝手にリダイレクトしたりして、めちゃくちゃヤバい。
何か設定があるのかもしれないけれど…
メンドウなので、特定のタグ以外は文字として表示することにした。
カスタマイズ内容
1.エディターのタグを減らす
bbpressのエディター上のタグ挿入ボタンは、デフォルトでは次のようになっている。
これを、次のように変更する。
b-quote…引用タグ。引用する時に必須なので、使用可にする。
code…質問時にコードを記載してもらいたいので、使用可にする。
2.b-quote、code以外は、文字で表示されるようにする。
<a href="https://aaa.com">aaa</a>
が入力されたら、通常は次のようになる。
これを、次のように文字で表示させる。
カスタマイズ前の準備
次の記事の方法で、カスタマイズの準備を行います。
カスタマイズ用コード
準備した自作プラグインに次のコードを貼りつけます。
- add_filter('bbp_get_quicktags_settings','my_bbp_get_quicktags_settings');
- function my_bbp_get_quicktags_settings( $settings ) {
- $settings['buttons']="code,block";
- return $settings;
- }
- add_filter( 'bbp_new_reply_pre_content','my_bbp_new_reply_pre_content');
- add_filter( 'bbp_new_topic_pre_content','my_bbp_new_reply_pre_content');
- function my_bbp_new_reply_pre_content( $comment_content ) {
- $comment_content = htmlspecialchars($comment_content, ENT_QUOTES);
- $comment_content=my_bbescape_tags_replace($comment_content,'code');
- $comment_content=my_bbescape_tags_replace($comment_content,'blockquote');
- return $comment_content;
- }
- function my_bbescape_tags_replace( $comment_content,$replace_tag ) {
- return preg_replace('/<(\/{0,1}' .$replace_tag.')>/i', '<$1>', $comment_content);
- }
処理の内容
【1行】bbpressのエディタータグ設定フィルタに関数を登録
【2~5行】表示するボタンを設定
「strong,em,link,block,del,img,ul,ol,li,code,close」から、使用するタグを,(カンマ)で区切る
【7,8行】エディターから送信されてきたデータを処理するフィルターに関数を登録
【10行】htmlエンティティ化
【16行】エンティティ化したデータから、使用可にしたいタグを元に戻す。
※この処理は、aタグなどの、タグ内に属性があるものを考慮していません。
■Googleで他サイト検索
■僕がおススメするアフィリエイト教材
■マーケティング施策ツール