bp_activity_truncate_entry( string $text, array $args = array() )
Truncate long activity entries when viewed in activity feeds.
Description
This method can only be used inside the Activity loop.
Parameters
- $text
-
(Required) The original activity entry text.
- $args
-
(Optional) Optional parameters. See $options argument of bp_create_excerpt() for all available parameters. }
Default value: array()
Return
(string) $excerpt The truncated text.
Source
File: bp-activity/bp-activity-filters.php
function bp_activity_truncate_entry( $text, $args = array() ) {
global $activities_template;
/**
* Provides a filter that lets you choose whether to skip this filter on a per-activity basis.
*
* @since BuddyPress 2.3.0
*
* @param bool $value If true, text should be checked to see if it needs truncating.
*/
$maybe_truncate_text = apply_filters(
'bp_activity_maybe_truncate_entry',
isset( $activities_template->activity->type ) && ! in_array( $activities_template->activity->type, array( 'new_blog_post', ), true )
);
// The full text of the activity update should always show on the single activity screen.
if ( empty( $args['force_truncate'] ) && ( ! $maybe_truncate_text || bp_is_single_activity() ) ) {
return $text;
}
/**
* Filters the appended text for the activity excerpt.
*
* @since BuddyPress 1.5.0
*
* @param string $value Internationalized "Read more" text.
*/
$append_text = apply_filters( 'bp_activity_excerpt_append_text', __( '[Read more]', 'buddyboss' ) );
$excerpt_length = bp_activity_get_excerpt_length();
$args = wp_parse_args( $args, array( 'ending' => __( '…', 'buddyboss' ) ) );
// Run the text through the excerpt function. If it's too short, the original text will be returned.
$excerpt = bp_create_excerpt( $text, $excerpt_length, $args );
/*
* If the text returned by bp_create_excerpt() is different from the original text (ie it's
* been truncated), add the "Read More" link. Note that bp_create_excerpt() is stripping
* shortcodes, so we have strip them from the $text before the comparison.
*/
if ( strlen( $excerpt ) < strlen( strip_shortcodes( $text ) ) ) {
$id = !empty( $activities_template->activity->current_comment->id ) ? 'acomment-read-more-' . $activities_template->activity->current_comment->id : 'activity-read-more-' . bp_get_activity_id();
$excerpt = sprintf( '%1$s<span class="activity-read-more" id="%2$s"><a href="%3$s" rel="nofollow">%4$s</a></span>', $excerpt, $id, bp_get_activity_thread_permalink(), $append_text );
}
/**
* Filters the composite activity excerpt entry.
*
* @since BuddyPress 1.5.0
*
* @param string $excerpt Excerpt text and markup to be displayed.
* @param string $text The original activity entry text.
* @param string $append_text The final append text applied.
*/
return apply_filters( 'bp_activity_truncate_entry', $excerpt, $text, $append_text );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 2.6.0 Added $args parameter. | BuddyPress 2.6.0 Added $args parameter. |
| BuddyPress 1.5.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.