0%

Programmingプログラミングナレッジ

Posted:2017.06.26

bbPressのカスタマイズでオリジナルテーマの掲示板サイト作成(Tips編)

当サイトのブログコンテンツであるデザインワークショップ【Suplog】にて、前回WordPressのbbPressというプラグインを使って掲示板サイトを作成する記事(「bbPressのカスタマイズでオリジナルテーマの掲示板サイト作成(導入編)」)を公開しました。今回は引き続き、bbPressのカスタマイズで使用できるコードなどを紹介していきたいと思います。

 

bbPressプラグインのリファレンスを活用する

bbPressに関していうと日本語のリファレンスが少ないのが現状です。公式サイトにも掲載されておりますが、他のサイトでも内容が充実しているものもありますので、カスタマイズの際はこれらのサイトを参考にすると便利です。

 

【bbPress公式サイト】(https://codex.bbpress.org/)
【Bbpress  hookr.io】(http://hookr.io/plugins/bbpress/)

 

関数をはじめ、フィルターやフックなどbbPress固有のものがありますのでそれらを使用するようにしましょう。これらを使うことで色々な要件にも対応できるようになります。それでは次にbbPressカスタマイズに使えるTips集を紹介していきたいと思います。

 

1. トピックの内容をループ表示させる

掲示板に上げるトピックの投稿は「topic」の投稿タイプになりますので、サブループなどで指定することでトピックの内容を表示できます。以下は全ての新着トピックを10件表示させる例になります。

 

<?php
    $args = array(
        'posts_per_page' => 10,
        'post_type' => 'topic'
    );
    $the_query = new WP_Query( $args );
    if ( $the_query->have_posts() ) :
    while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<h1><?php the_title(); ?>
</h1>
<p><?php the_excerpt(); ?>
</p>
<?php endwhile; ?>
<?php else: ?>
<p>トピックはありません
</p>
<?php endif; ?> 
<?php wp_reset_postdata(); ?>

 

2. トピックが属するフォーラムのIDを取得してフォーラム名として出力する

トピックの表示に合わせてフォーラム名をラベルとして表示する時などに使えます。bbp_get_forum_parent_idという関数でフォーラムのIDを取得します。

 

<span class="label">
<?php
    $forumId = bbp_get_forum_parent_id();
    if ( $forumId == 1 ) :
        echo 'フォーラム1' :
    else if ( $forumId ==  2 ) :
        echo 'フォーラム2' :
    else if ( $forumId ==  3 ) :
        echo 'フォーラム3' :
    end if;
?>
</span>

 

3. 投稿者をブログ上の表示名で出力する

トピックやリプライなどの投稿にひもづく投稿者の情報を取得し、ブログ上の表示名(display name)で出力する方法です。bbp_get_displayed_user_fieldという関数を使用します。

 

<span class="author-display-name">
<?php echo bbp_get_displayed_user_field('display_name','display'); ?>
</span>

 


 

いかがでしょうか、この他にもいろんな関数などが用意されておりますので、かなり柔軟なカスタマイズが可能になります。bbPressはデフォルトでも完成度が高い掲示板になっていますが、オリジナリティや必要とされる要件次第ではちょっとしたカスタマイズが求められる場面があると思いますので、ぜひ参考にしていただければと思います。

 

 

author
この記事を書いた人オガワ シンヤ
FacebookTwitter

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

制作のご依頼やお問い合わせ・パートナー業務提携のご相談はこちら

デザインやウェブ制作についてのご依頼やご相談、その他お問い合わせなどもお気軽にご連絡ください。フットワークの軽さやレスポンスの早さ、また豊富な経験や知識、技術を活かした対応力といったフリーランスクリエイターの強みでクライアント様、パートナー企業様のお力になります。デザインからコーディングやWordPress実装といったウェブサイト構築はもちろん、写真撮影や動画編集、コンテンツ制作からサイト運用サポートまで一括してお任せください。

ホームページ制作のご検討やウェブ運用でお悩みの経営者様や企業のウェブ担当者様をはじめ、個人で店舗を営んでいらっしゃるオーナー様、フリーで活動されているビジネスオーナー様はもちろんのこと、リソース不足でお困りの制作会社様、またクリエイターをお探しの代理店様も大歓迎です。

コンタクトをご希望の方はお手数ですが、下記よりお問い合わせフォームのページへアクセスしていただき、必要事項を入力の上メッセージを送信してください。確認でき次第すぐに折り返しご連絡致します。

こんな記事も読まれています

4 件のコメント

  • 突然のメッセージ申し訳ありません
    本記事を参考にさせて頂いており非常に助かっております
    不躾な質問になってしまい大変申し訳ないのですが、本記事にあるトピックのループの要領で返信(リプライ)の新着記事を該当トピックのスラッグ付きで取得したいのですが
    下記コードで単一の記事しか取得できない状況です

    5,
    ‘post_type’ => ‘reply’
    );
    $the_query = new WP_Query( $args );
    if ( $the_query->have_posts() ) :
    while ( $the_query->have_posts() ) : $the_query->the_post();
    ?>

    <a href="”>

    例:HOMEURL/bbs/reply/返信ID/
    出力内容は問題ないのですが、このようなURLになり、意図するページにリンクできていません。
    プラグイン純正のウィジェットで最近の返信というのは取得できるのですが、こちらだと出力内容が希望のものになりません、ただし以下のようにトピックページ内の該当部分にリンクできています。
    例:HOMEURL/bbs/topic/トピックタイトル/#返信ID
    ループ内でアバターと投稿内容にこの形のリンクを付けたいのですが、該当箇所のbbpressファイルも見つからず、どのようなマークアップをしたら良いかわからない状況です
    例のようなパーマリンクになるコード、若しくは新着返信を取得するbbpressの関数等ご存知でしたらご教授願いたいと思っております、bbpressを導入している他サイトを見ても私の希望の形で新着を表示しているサイトはありませんが、絶対に需要はあると思いますので、是非記事等に纏めて頂ければ非常に助かります、他の記事からも大変貴重な情報を頂いておりますので、今後とも楽しみにしております。

    • nemoさん
      コメントありがとうございます。
      また、いつも当サイトのブログを見ていただきありがとうございます。

      さて、ご質問の件についてですが、
      例に上がっているパーマリンクは「bbp_reply_url();」のテンプレートタグで出力できるかと思います。
      また、該当箇所のテンプレートファイルは「loop-single-reply.php」でした。

      新着返信を取得するループについては
      また後日アップできればと思います。

      • ご返信頂きましてありがとうございます。
        リンクにつきましては「loop-single-reply.php」の中にあるそれらしい関数も色々と試している状況でしたので
        ご提示いただいたタグも試験済みで、同じ結果になっております。
        リンク回りというよりはループの取得方法が問題だと思いますので、一から考えてみます。
        質問にご回答頂き本当にありがとうございます、更新の程期待しております。

        • そうでしたか、これは失礼いたしました、、

          私自身もbbPressに関してはまだ知らない部分も多いのですが、
          可能性が広がる素晴らしいプラグインだと思います。

          これからも勉強を兼ねて貯まった知識はこちらのコンテンツで共有できればと考えております。
          今後ともご愛読頂けますと幸いです。

コメントもお気軽にどうぞ

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA


ページトップへ
大阪市天王寺区のホームページ制作デザイン事務所(SOHO)DesignSupply.【デザインサプライ】