bbPressのカスタマイズまとめ

スポンサーリンク

WordPressで掲示板を設置しようと思ったら今の所はまぁbbPressしかないでしょう。
機能はそれなりに充実しているし、日本語のフォーラムにも対応しています。

でもただインストールするだけでは何かと使いにくいので、いろいろなカスタマイズをする必要があると思います。インストールの仕方などは他のサイトに譲るとして、ここではカスタマイズの方法のみまとめます。
まぁまぁ時間かかりました。

セレクトボックスの見切れ修正

使用しているテーマとの相性もあるだろうけど、フォーラムを設置してトピックを書こうとしたらいきなりセレクトボックスが見切れていたのでこれを直します。

プラグイン編集で「bbpress/templates/default/css/bbpress.min.css」を選び、「fieldset.bbp-form select」を探します。
ここに「height:28px」と書いてあるのでこれを35pxぐらいに調整し「ファイルを更新」ボタンをクリック。
「使用中のプラグインへの変更は推奨されません。」と書いてあるけどスタイルシートなので問題ないです。

表に戻ってリロードするとええ感じの高さが確保できてました。

パンくずリストの削除

WordPressのテーマにパンくずリストが大概あるので、bbPressが表示しているパンくずリストを非表示にするために「GD bbPress Tools」をインストールします。

インストール後、GD bbPress Toolsの設定で、Tweaksタブの中にある「Disable bbPress breadcrumbs」の「Active」にチェックをすると、bbPressのパンくずリストが消えました。

GD bbPress Tools」をインストールすると、投稿フォームの上に「You can use BBCodes to format your content.」という文が表示されます。
これを消したい時は、GD bbPress Toolsの設定で、BBCodesタブの中にある「BBCodes New Topic/Reply Notice」の「Active」のチェックを外してください。

日本語スラッグをIDに変換する

bbPressはWordPressのパーマリンク設定が効かないようで、スラッグにタイトルがそのまま入ってしまいます。日本語タイトルの掲示板やトピックだとURLも日本語になってしまうので、それをIDに変換する「bbPress Permalinks with ID」をインストールします。

これをインストールした後、既に作成済のフォーラムやトピックにアクセスすると「404 error:Page not found」(ページが見つかりません)エラーが発生する場合があります。

この場合、次の操作で解決します。

  1. パーマリンク設定の共通設定を「基本」以外の今と異なる設定に変更して「変更を保存」をクリックする。
  2. キャッシュ系プラグインがある場合は、キャッシュをクリアする。
  3. パーマリンク設定を元に戻す。

画像ファイルも投稿したい

Inline Image Upload for BBPress」をインストールするだけで、投稿エディタが

こんなのだったのが、

こういう風になり、一番右の画像アイコンをクリックすると画像ファイルが投稿文に貼りつけられるようになります。他の装飾もわかりやすくなってます。
画像を貼った投稿はこんな感じです。

画像投稿するためには「GD bbPress Attachments」というプラグインを薦めているサイトが多いけど、プラグインの名前の通り、画像ファイルが添付できるようになるだけで、画像投稿という感じじゃないです。ファイルを添付したい場合に必要になってくるプラグインかと思います。用途が違いますね。

いかにも添付って感じです。

しかもWordPressにログインしていないとファイル添付できないし。
解決方法はコード修正のみ。設定にしてくれよ。。。
一応調べたので、以下、解決方法。

プラグイン編集で「gd-bbpress-attachments/code/class.php」を選び、226行目付近のコードを以下のように修正します。
false を true に変更するだけです。

変更前

    public function is_user_allowed() {
        $allowed = false;

変更後

    public function is_user_allowed() {
        $allowed = true;

「使用中のプラグインへの変更は推奨されません。」と書いてあるけど、すぐに元に戻せるので、気にせず「ファイルを更新」ボタンをクリックしても、最悪でもインストールし直したら元に戻るので問題ないです。

さらにログインしていないと添付されたファイルが表示されません。これをログインしてなくても表示させるには、GD bbPress Attachments の Settings、Hide attachements の「From visitors」のチェックを外すと表示されるようになります。

メールアドレスとウェブサイト入力欄を消す方法

入力してもらうかどうか設定で変えられたらいいのに、しかもメールアドレスは必須入力になっていて使いにくいので、その解決方法を説明します。
入力欄を消すには入力欄の表示そのものと、入力チェックしているところの両方を変更する必要があります。

メールアドレスの必須チェックを外す方法

プラグイン編集で「bbpress/includes/common/functions.php」を選び、「Invalid email address.」のある行を探してそれをコメントアウトするだけです。

変更前

    bbp_add_error( 'bbp_anonymous_email', __( '<strong>ERROR</strong>: Invalid email address.', 'bbpress' ) );

変更後

  //  bbp_add_error( 'bbp_anonymous_email', __( '<strong>ERROR</strong>: Invalid email address.', 'bbpress' ) );

メールアドレスの入力欄を消す方法

プラグイン編集で「bbpress/templates/default/bbpress/form-anonymous.php」を選び、「bbp_anonymous_email」のある行を探し、その段落 <p> ~ </p>をコメントアウトします。

変更前

    <p>
        <label for="bbp_anonymous_email"><?php esc_html_e( 'Mail (will not be published) (required):', 'bbpress' ); ?></label><br />
        <input type="text" id="bbp_anonymous_email"   value="<?php bbp_author_email(); ?>" size="40" maxlength="100" name="bbp_anonymous_email" />
    </p>

変更後

  <?php /*
    <p>
        <label for="bbp_anonymous_email"><?php esc_html_e( 'Mail (will not be published) (required):', 'bbpress' ); ?></label><br />
        <input type="text" id="bbp_anonymous_email"   value="<?php bbp_author_email(); ?>" size="40" maxlength="100" name="bbp_anonymous_email" />
    </p>
   */ ?>

ウェブサイトの入力欄を消す方法

プラグイン編集で「bbpress/templates/default/bbpress/form-anonymous.php」を選び、「bbp_anonymous_website」のある行を探し、その段落 <p> ~ </p>をコメントアウトします。

変更前

    <p>
        <label for="bbp_anonymous_website"><?php esc_html_e( 'Website:', 'bbpress' ); ?></label><br />
        <input type="text" id="bbp_anonymous_website" value="<?php bbp_author_url(); ?>" size="40" maxlength="200" name="bbp_anonymous_website" />
    </p>

変更後

  <?php /*
    <p>
        <label for="bbp_anonymous_website"><?php esc_html_e( 'Website:', 'bbpress' ); ?></label><br />
        <input type="text" id="bbp_anonymous_website" value="<?php bbp_author_url(); ?>" size="40" maxlength="200" name="bbp_anonymous_website" />
    </p>
   */ ?>

投稿者の情報を非表示にする

これも設定で表示するかどうか決められたらいいのに、そうなってないので不要な情報を表示させなくする方法を説明します。

アバターを消す方法

WordPressの「設定」「ディスカッション設定」の「アバターを表示する」チェックを外すと表示されなくなります。

投稿者のリンクを消す方法

プラグイン編集で「bbpress/includes/topics/template.php」を選び、「class=”bbp-author-link”」のある行を探し、その行をコメントアウトします。

変更前

    // Only wrap in link if profile exists
    if ( empty( $anonymous ) && bbp_user_has_profile( bbp_get_topic_author_id( $topic_id ) ) ) {
        $author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
    }

変更後

    // Only wrap in link if profile exists
    if ( empty( $anonymous ) && bbp_user_has_profile( bbp_get_topic_author_id( $topic_id ) ) ) {
    //    $author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
    }

ここまででフォーラム一覧とトピック一覧の一部にある投稿者リンクがなくなっています。さらに以下の通り変更すると、トピック一覧の残りとトピック内の投稿者リンクがなくなります。

プラグイン編集で「bbpress/includes/replies/template.php」を選び、「class=”bbp-author-link”」のある行を探し、その行をコメントアウトします。

変更前

    // Only wrap in link if profile exists
    if ( empty( $anonymous ) && bbp_user_has_profile( bbp_get_reply_author_id( $reply_id ) ) ) {
        $author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
    }

変更後

    // Only wrap in link if profile exists
    if ( empty( $anonymous ) && bbp_user_has_profile( bbp_get_reply_author_id( $reply_id ) ) ) {
    //    $author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
    }

投稿者の権限を消す方法

プラグイン編集で「bbpress/includes/replies/template.php」を選び、「bbp_get_reply_author_role」のある行を探し、その行をコメントアウトします。

変更前

    if ( true === $r['show_role'] ) {
        $author_link .= bbp_get_reply_author_role( array( 'reply_id' => $reply_id ) );
    }

変更後

    if ( true === $r['show_role'] ) {
    //    $author_link .= bbp_get_reply_author_role( array( 'reply_id' => $reply_id ) );
    }

IPアドレスの表示を消す

IPアドレスは、ログイン中の管理者にしか表示されていないので特に何もしなくても一般ユーザーには表示されません。

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