An alternative to the "bbPress New Topics" plugin

As you know, there is a plugin named "bbPress New Topics." However, it seems it does not work with the latest version of WordPress. I installed it and tried to make it worked, but in vain.
I decided to make this feature for myself. I implemented it by comparing two dates: the current date and the topic date. If the date difference is less than 3 days for example, the label "New" is added.
New Label on bbpress

You can test it on this forum.

To add this feature, you need to add a few lines of codes to loop-single-topic.php (of the bbPress plugin) and functions.php (of your theme):

Please add the following function to your theme function file:

function mycustom_new_label_bbp($now, $last_active) {
$now = new DateTime($new);
$last_active = new dateTime($last_active);
$interval = $last_active->diff($now);
$difference = $interval->format('%R%a days');
if($difference < 3) {
echo "<span class='mycustom_new_label'>";
echo "New";
echo '</span>';

}
}

Please add the following php code to the file "loop-single-topic.php" just before the post tile code (for example, "<?php do_action( 'bbp_theme_before_topic_title' ); ?>".)

<!-- For outputting "New" label -->
<?php $now = date("Y-m-d");
if ( !empty( $reply_id ) ) {
$last_active = get_post_field( 'post_date', $reply_id );
}
else {
$last_active = get_post_field( 'post_date', $topic_id );
}
?>
<?php mycustom_new_label_bbp($now, $last_active); ?>

Lastly, you need to adjust the appearance of the button using CSS code. Please add the following CSS code to your stylesheet file:

/* For displaying "New" Label for topics less than 3 days */
.mycustom_new_label {
	display: inline;
	padding: .2em .6em .3em;
	font-size: 11px;
	line-height: 1;
	color: #ffffff;
	background-color: #d9534f;
	text-align: center;
	white-space: nowrap;
	vertical-align: baseline;
	border-radius: .25em;
}

Is there any way to make it as a plugin? I will try to search Internet to find out how to make WordPress plugins when I am free…


10 개 댓글

    • Hi raj

      Thanks for your comment.

      The “loop-single-topic.php” file can be found under:
      ../wp-content/plugins/bbpress/templates/default/bbpress

      You can copy all files (or files you will modify) under the folder “…/wp-content/plugins/bbpress/templates/default/bbpress” to “…/wp-content/themes/your_theme_name/bbpress” and copy the css files under “…/wp-content/plugins/bbpress/templates/default/css” to “…/wp-content/themes/your_theme_name/css”. Then, the modified template files will not be affected even if bbpress is upgraded.

    • Hi Nikhil

      Thanks for your comment. I think it's easy to implement it.
      I just tested and the following function works well:

      bbp_get_topic_reply_count()

      Please note that this function will return the number of replies + 1. (For example, if the actual number of replies is 2, bbp_get_topic_reply_count() will return 3.) Please consider this when creating a conditional php tag using this function.
      Please feel free to contact me anytime if you have any questions.

  1. Hello wordcracker!
    Thank you for this code!! I found it really useful.

    Can I make this code also show the "new" label on forms that have topics with new content? I really miss this function.
    I would love this kind of function in my forum!

    • Hellovirre131,

      Thanks for your comment.

      I think it will be possible to show the "new" label on forums that have topices with new content.

      Please add the following code to the file "loop-single-forum.php" (not "loop-single-topic.php"):


      You can add the above code in front of "bbp_forum_title();".
      I tested it and it works fine in my environment. I hope this will also work well in your system.

Leave a Comment