BBPress is a WordPress Plugin alternative to other Forum Software such as vBulletin, phpBB, Xenforo, and Vanilla. Although BBPress did not have as many features as vBulletin and Xenforo, it had a higher Search Engine Optimize score than both of them plus BBPress is Free to use. BBPress uses WordPress Permalink which is Better SEO Friendly, many webmasters are taken interest in using BBPress as their Community Forum Tool.

Today I am going to show you how to add a view counter to BBPress topics.

First, make sure you have BBPress plugin installed, you can download the BBPress WordPress Plugin here.

1. Adding View Counter Function

open your theme functions.php and add this line of code

if( !function_exists('get_wpbbp_post_view') ) :
////////////////////////////////////////////////////////////////////////////////
// get bbpress topic view counter
////////////////////////////////////////////////////////////////////////////////
function get_wpbbp_post_view($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0";
    }
    return $count;
}
function set_wpbbp_post_view($postID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if( $count == '' ){
        add_post_meta($postID, $count_key, '1');
    } else {
        $new_count = $count + 1;
        update_post_meta($postID, $count_key, $new_count);
    }
}
endif;

What does this code do?
this is the function to add view counter to topic meta

2. Add Hook Action to Each Topic

Again, below the newly added code, add this line of code

if( !function_exists('add_wpbbp_topic_counter') ) :
////////////////////////////////////////////////////////////////////////////////
// init the view counter in bbpress single topic
////////////////////////////////////////////////////////////////////////////////
function add_wpbbp_topic_counter() {
global $wp_query;
$bbp = bbpress();
$active_topic = $bbp->current_topic_id;
set_wpbbp_post_view( $active_topic );
}
add_action('bbp_template_after_single_topic', 'add_wpbbp_topic_counter');
endif;

3. Applying or use the counter in template

You can use this code in any bbpress loop

<?php echo get_wpbbp_post_view( bbp_get_topic_id() ); ?>

in my case, i want to replace the ‘voice count’ with ‘view count’ in the BBPress topics loop.
voice-to-view-count

using a bbpress child template method, I created a bbpress folder name in my theme. Copy and paste loop-single-topic.php from wp-content/plugins/bbpress/templates/default/bbpress/loop-single-topic.php

then edit mytheme/bbpress/loop-single-topic.php line 82+

<?php bbp_topic_voice_count(); ?>

with the new code

<?php echo get_wpbbp_post_view( bbp_get_topic_id() ); ?>

The voice counter should have been replacing by the view counter right now.

Good to go now!

Once everything is done, you should have a view counter on all your BBPress topics. Now you can track which topics had the most viewed starting today!

Hope you enjoy the read, more BBPress Tips, and Tricks coming this month.