Very interesting question.
It’s not currently possible to do this through the regular activity API. We’ve hardcoded ASC
into the comment query: https://buddypress.trac.wordpress.org/browser/tags/2.9.2/src/bp-activity/classes/class-bp-activity-activity.php?marks=1510#L1509
I think that it would be a good enhancement request to add something to the query API that allows for these items to be reversed. If you’re interested, I encourage you to open a ticket at https://buddypress.trac.wordpress.org.
In the meantime, here’s a clunky workaround:
add_filter( 'bp_has_activities', function( $has ) {
global $activities_template;
foreach ( $activities_template->activities as &$a ) {
$a->children = array_reverse( $a->children );
}
return $has;
} );
This will only affect top-level comments; you’d need something recursive to do deeper levels. And you may want to limit this to front-end queries, or in the main activity directory, or something like that. But it’s a basic technique that should give you a sense of how to solve this in the short term.
That worked, thank you very much. 🙂
Hey Boone I have managed to get things working with a little core tweaking for the time being. I have 2 remaining issues I am wrestling with that maybe you can help me solve.
1. When the comment post form is opened it currently scrolls the form to the bottom of the comments. I would like to keep the comment form above the comments with no scroll.
2. When multiple comments trigger the “Show all comments” message (seems to have a default of 5), the comments displayed show the oldest comments and not the newest.
Any help is appreciated. 🙂
Hello again…Ok, I have moved bp_activity_comments() inside the form div in entry.php which allows for clicking the comment button to open the comment box with the latest comments below.
The current problem is when a new post is created it positions the new comment on the main time line by itself and above the comment post box until the page is refreshed and then it is back inside the form div below the comment post box again even though I have moved wp_nonce_field( ‘new_activity_comment’, ‘_wpnonce_new_activity_comment’ ) inside the form div.
I am also trying to find a way to keep the comment box open when posting allowing the user to close the box via the cancel button.
I have looked at the possibilities within the js files but I am stumped by this at the moment.
I appreciate any pointers. 🙂