BuddyPress Forum Time Since Last Post (a.k.a. “Freshness”)

Today, I had the fun task of changing the way that the “Freshness” dates display in BuddyPress forums.  The idea behind “Freshness” is that there is an easy-to-read way to let people know when the forum topic was last updated.  By default, it displays something like, “1 week, 5 days, 3 hours”, and I wanted to change that to say, “Sept. 18, 2012”.

The BuddyPress function that is used to make the “Freshness” call is bp_the_topic_time_since_last_post().  Unfortunately for me, this function is hard-wired to echo the value, which means that I cannot use PHP’s strtotime() function to manipulate the date format.

My solution was to find the core code for the bp_the_topic_time_since_last_post() function and rewrite it into my theme like so:

global $forum_template; 
echo date ('M d, Y', strtotime($forum_template->topic->topic_time));

In the process of figuring this out, I also discovered the bp_the_topic_time_since_created() and human_time_diff() functions.

Pretty neat!

(Thanks to Mark for helping me troubleshoot this!)

Additional human_time_diff() links:
http://tollmanz.github.com/theres-a-function-for-that/#1
http://wordpress.tv/2012/09/02/zack-tollman-theres-a-function-for-that-more-for-less-with-core-functions/

Posted in ,

Toby Cryns

Toby Cryns is a freelance CTO, expert WordPress consultant, and teacher.

He offers free advice to improve your freelance biz.

He also publishes small droppings every now and then to twitter.com/tobycryns and twitter.com/themightymo

Follow Toby's contributions on Github and WP.org.