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

2017.06.26

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

Pocket

当サイトのブログコンテンツであるデザインワークショップ【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はデフォルトでも完成度が高い掲示板になっていますが、オリジナリティや必要とされる要件次第ではちょっとしたカスタマイズが求められる場面があると思いますので、ぜひ参考にしていただければと思います。

 

 

Pocket

>>記事一覧に戻る