User Guide

Get Started

BuddyPress Profanity Plugin Documentation

Table of Contents

  1. Plugin Overview
  2. Installation & Setup
  3. Configuration Guide
  4. Content Filtering
  5. Privacy Features
  6. Troubleshooting
  7. System Requirements
  8. Performance Optimization

Plugin Overview

BuddyPress Profanity is a comprehensive content filtering plugin designed to maintain a safe and family-friendly environment in your BuddyPress community. The plugin intelligently filters offensive language from various content types while preserving the integrity of your community discussions.

Key Features

  • Smart Content Filtering: Filter profanity from activity updates, comments, private messages, and bbPress forums
  • Advanced Word Management: Easy keyword management with bulk import functionality and 200+ default inappropriate terms
  • Flexible Replacement Options: Multiple rendering modes with various replacement characters (*, $, ?, etc.)
  • Privacy Protection: Automatic email address and phone number masking to prevent harvesting
  • Real-time Filtering: Content filtering without affecting database storage using advanced regex patterns
  • Developer-Friendly: Extensive filter hooks, clean code architecture, and translation-ready
  • Multisite Compatible: Full support for WordPress multisite networks
  • Performance Optimized: Cached regex patterns and conditional asset loading for minimal overhead

Supported Content Types

  • BuddyPress activity streams, comments, and private messages
  • bbPress forum topics and replies
  • BuddyPress notifications and user-generated content
  • Email addresses and phone numbers (privacy masking)

Installation & Setup

Automatic Installation

  1. Go to your WordPress admin dashboard
  2. Navigate to Plugins → Add New
  3. Search for "BuddyPress Profanity"
  4. Click "Install Now" then "Activate"
  5. Configure the plugin at BuddyPress → Profanity Settings

Manual Installation

  1. Download the plugin zip file
  2. Extract the contents to /wp-content/plugins/buddypress-profanity/
  3. Activate the plugin through the ‘Plugins’ menu in WordPress
  4. Navigate to the settings page to configure filtering options

Post-Installation Setup

  1. Configure Keywords: Add your custom profanity list or use defaults
  2. Set Filtering Scope: Choose which content types to filter
  3. Customize Replacement: Select preferred masking characters and styles
  4. Test Filtering: Create test content to verify functionality
  5. Enable Privacy Features: Configure email/phone masking if desired

Configuration Guide

General Settings

Navigate to BuddyPress → Profanity Settings → General to configure the main plugin settings.

Blocked Keywords

Add specific words or phrases you want to filter from your community content. The plugin comes with a default list of 200+ inappropriate terms.

Default Keywords Reset: Use the "Reset to Default" button to restore the original keyword list if needed.

Filter Scope

Select which types of content will be subject to filtering:

  • Status Updates: Filter BuddyPress activity stream posts
  • Activity Comments: Filter comments on activity posts
  • Messages: Filter private messages and group messages
  • bbPress Forums, Topics and Replies Title: Filter forum titles (requires bbPress)
  • bbPress Forums, Topics and Replies Content: Filter forum content (requires bbPress)

Word Rendering Options

Choose how blocked words appear to users:

  • First letter retained: blog → b***
  • Last letter retained: blog → ***g
  • First and Last letter retained: blog → b**g (recommended)
  • All letters removed: blog → ****

Filter Character

Select the symbol that will replace filtered content:

  • *Asterisk ()**: Default option
  • Dollar ($)
  • Question (?)
  • Exclamation (!)
  • Hyphen (-)
  • Hash (#)
  • Tilde (~)
  • Blank space ( )

Case Matching

  • Case Sensitive: Filters keywords with strict case matching
  • Case Insensitive: Captures more words while filtering (recommended)

Strict Filtering

  • Strict Filtering ON: Embedded keywords are filtered (e.g., "ass" in "passable" becomes "p***able")
  • Strict Filtering OFF: Only whole words are filtered (recommended for reducing false positives)

Bulk Keyword Management

Navigate to BuddyPress → Profanity Settings → Bulk Save to manage keywords in bulk.

  1. Add a list of words separated by commas
  2. The plugin will automatically update the keyword list
  3. Save settings to apply changes

Content Filtering

How Content Filtering Works

The plugin filters content in real-time when displayed to users. This means:

  • Original content remains unchanged in the database
  • Filtering happens at the presentation layer
  • No data integrity issues
  • Content can be restored by disabling the plugin

Filtering Process

  1. Content Detection: Plugin identifies when filterable content is being displayed
  2. Keyword Matching: Searches for blocked keywords using regex patterns
  3. Replacement: Replaces matched words based on rendering settings
  4. Caching: Stores regex patterns for improved performance

Content Types Covered

BuddyPress Activity

  • Activity status updates
  • Activity comments and replies
  • Activity notifications

BuddyPress Messages

  • Private message content
  • Message subjects
  • Message excerpts
  • Group message content

bbPress Integration

  • Forum titles
  • Topic titles and content
  • Reply titles and content
  • Forum descriptions

Other Content

  • BuddyPress notifications
  • Token replacements in text
  • User-generated content elements

Privacy Features

Email Address Masking

When enabled, the plugin automatically detects and masks email addresses:

Original: user@example.com
Masked: u***@e****e.com

Features:

  • Preserves first and last characters of username
  • Preserves first character of domain
  • Keeps full TLD visible
  • Removes mailto: links and references

Phone Number Masking

The plugin can detect and mask various phone number formats:

Supported Formats:

  • International: +1-123-456-7890
  • US Format: (123) 456-7890
  • Simple: 123-456-7890 or 1234567890
  • With country code: 1-123-456-7890

Masking Pattern:

  • Keeps first digit
  • Masks middle digits
  • Keeps last 2 digits
  • Preserves original formatting

Troubleshooting

Common Issues

Plugin Not Filtering Content

Possible Causes:

  • BuddyPress not installed/activated
  • Content type not selected in Filter Scope
  • Keywords list is empty
  • Cache conflict

Solutions:

  1. Verify BuddyPress is active
  2. Check Filter Scope settings
  3. Ensure keywords are properly configured
  4. Clear cache and test again

False Positives

Issue: Legitimate words being filtered incorrectly

Solutions:

  1. Switch to Case Insensitive matching
  2. Disable Strict Filtering
  3. Review and refine keyword list
  4. Remove problematic keywords

Performance Issues

Symptoms: Slow page loading

Solutions:

  1. Review keyword list length
  2. Enable caching plugin compatibility
  3. Optimize hosting environment
  4. Contact support for assistance

Settings Not Saving

Possible Causes:

  • Permission issues
  • Plugin conflicts
  • Server configuration

Solutions:

  1. Check user permissions
  2. Deactivate other plugins temporarily
  3. Increase memory limit
  4. Verify file permissions

Getting Support

  1. Documentation: Check this guide thoroughly
  2. Support Forum: Visit wbcomdesigns.com/support
  3. Bug Reports: Use GitHub repository for technical issues
  4. Feature Requests: Submit through support center

System Requirements

Minimum Requirements

  • WordPress: 5.0 or higher
  • BuddyPress: 6.0 or higher (required)
  • PHP: 7.4 or higher (PHP 8.0+ recommended)
  • MySQL: 5.6 or higher / MariaDB 10.1+
  • Memory: 64MB+ (128MB+ recommended)

Recommended Environment

  • Latest WordPress version
  • Latest BuddyPress version
  • PHP 8.0 or newer
  • MySQL 8.0 or MariaDB 10.5+
  • 256MB+ memory limit
  • SSD storage for better performance

Supported Integrations

  • WordPress Multisite: Full compatibility
  • bbPress: Complete forum integration
  • BuddyPress Components: Activity, Messages, Groups, Members
  • Popular Page Builders: Elementor, Gutenberg
  • Caching Plugins: WP Rocket, W3 Total Cache, WP Super Cache

Performance Optimization

Built-in Optimizations

  1. Regex Caching: Compiled patterns are cached for reuse
  2. Conditional Loading: Assets only load when needed
  3. Efficient Algorithms: Optimized string processing
  4. Minimal Database Impact: Front-end filtering only

Performance Best Practices

Keyword Management

  • Keep keyword list focused and relevant
  • Remove overly broad terms that cause false positives
  • Regularly review and update keyword list

Server Configuration

  • Use PHP 8.0+ for improved performance
  • Enable OPcache for PHP optimization
  • Use object caching (Redis/Memcached)
  • Implement page caching solutions

Content Optimization

  • Monitor filtered content types
  • Disable unnecessary filtering scopes
  • Regular performance audits

Monitoring Performance

Track these metrics:

  • Page load times
  • Memory usage
  • Cache hit rates
  • User experience feedback

FAQ

General Questions

Q: Does this plugin require BuddyPress?
A: Yes, BuddyPress must be installed and activated for this plugin to function properly.

Q: Will this plugin affect my existing content in the database?
A: No, the plugin only filters content when displayed. Your original content remains unchanged.

Q: Can I add custom words to the filter?
A: Yes, you can add, edit, or remove keywords through the admin interface or bulk import.

Q: Does the plugin work with bbPress?
A: Yes, the plugin includes full bbPress integration for forums, topics, and replies.

Technical Questions

Q: How does email/phone masking work?
A: The plugin detects patterns in content and replaces them with masked versions while preserving format and context.

Q: Is the plugin compatible with caching plugins?
A: Yes, it’s designed to work with popular caching solutions since filtering happens at display time.

Q: Can I customize replacement characters?
A: Yes, choose from preset characters or use developer hooks for custom implementations.

Q: Does the plugin support multisite?
A: Yes, it’s fully compatible with WordPress multisite networks.

Customization Questions

Q: How do I handle false positives?
A: Remove problematic words from the filter list or adjust case sensitivity and strict filtering settings.

Q: Can I create different filter settings for different user roles?
A: Not directly through the interface, but this can be implemented using developer hooks.

Q: Is the plugin translation-ready?
A: Yes, it includes complete internationalization support with translation files.


Version History

Version 2.0.1

  • Fixed fatal error on activity pages
  • Enhanced email and phone masking
  • Improved multisite compatibility
  • Better performance optimizations

Version 2.0.0

  • Complete admin interface redesign
  • Advanced email/phone masking
  • bbPress integration
  • RTL language support
  • Enhanced security

Previous Versions

  • See full changelog in plugin documentation

License & Credits

License

This plugin is licensed under GPL-2.0 or later.

Credits

Third-Party Libraries

  • Selectize.js for enhanced form controls
  • WordPress Plugin Boilerplate structure

Last updated: May 19, 2025