BuddyPress: Limit the Length of Activity Updates
Shortens activity updates and comments longer than a set number of characters, which keeps the stream readable and discourages wall-of-text spam.
Opens WPIDE on
Code
if ( ! function_exists( 'buddypress' ) ) {
return;
}
// Maximum characters per update.
$wpide_bp_max_chars = 1000;
add_action( 'bp_activity_before_save', function ( $activity ) use ( $wpide_bp_max_chars ) {
if ( empty( $activity->content ) || user_can( (int) $activity->user_id, 'bp_moderate' ) || ! in_array( $activity->type, array( 'activity_update', 'activity_comment' ), true ) ) {
return;
}
if ( mb_strlen( wp_strip_all_tags( $activity->content ) ) > $wpide_bp_max_chars ) {
$activity->content = mb_substr( wp_strip_all_tags( $activity->content ), 0, $wpide_bp_max_chars ) . '…';
}
} );
add_action( 'wp_footer', function () use ( $wpide_bp_max_chars ) {
if ( ! is_buddypress() || ! is_user_logged_in() ) {
return;
}
printf( '<script>document.querySelectorAll("#whats-new, .ac-input").forEach(function(el){el.setAttribute("maxlength","%d");});</script>', (int) $wpide_bp_max_chars );
} );
Notes
Moderators can post longer updates. A maxlength is also added to the update box so members see the limit while typing.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.