bp_legacy_theme_activity_template_loader()
Load the activity loop template when activity is requested via AJAX.
Description Description
Return Return
(string|null) JSON object containing 'contents' (output of the template loop for the Activity component) and 'feed_url' (URL to the relevant RSS feed).
Source Source
File: bp-templates/bp-legacy/buddypress-functions.php
function bp_legacy_theme_activity_template_loader() {
if ( ! bp_is_post_request() ) {
return;
}
$scope = '';
if ( ! empty( $_POST['scope'] ) )
$scope = $_POST['scope'];
// We need to calculate and return the feed URL for each scope.
switch ( $scope ) {
case 'friends':
$feed_url = bp_loggedin_user_domain() . bp_get_activity_slug() . '/friends/feed/';
break;
case 'groups':
$feed_url = bp_loggedin_user_domain() . bp_get_activity_slug() . '/groups/feed/';
break;
case 'favorites':
$feed_url = bp_loggedin_user_domain() . bp_get_activity_slug() . '/favorites/feed/';
break;
case 'mentions':
$feed_url = bp_loggedin_user_domain() . bp_get_activity_slug() . '/mentions/feed/';
if ( isset( $_POST['_wpnonce_activity_filter'] ) && wp_verify_nonce( wp_unslash( $_POST['_wpnonce_activity_filter'] ), 'activity_filter' ) ) {
bp_activity_clear_new_mentions( bp_loggedin_user_id() );
}
break;
default:
$feed_url = home_url( bp_get_activity_root_slug() . '/feed/' );
break;
}
// Buffer the loop in the template to a var for JS to spit out.
ob_start();
bp_get_template_part( 'activity/activity-loop' );
$result['contents'] = ob_get_contents();
/**
* Filters the feed URL for when activity is requested via AJAX.
*
* @since 1.7.0
*
* @param string $feed_url URL for the feed to be used.
* @param string $scope Scope for the activity request.
*/
$result['feed_url'] = apply_filters( 'bp_legacy_theme_activity_feed_url', $feed_url, $scope );
ob_end_clean();
exit( json_encode( $result ) );
}
Changelog Changelog
| Version | Description |
|---|---|
| 1.2.0 | Introduced. |