BuddyPress Profanity Plugin Documentation
Table of Contents
- Plugin Overview
- Installation & Setup
- Configuration Guide
- Content Filtering
- Privacy Features
- Troubleshooting
- System Requirements
- 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
- Go to your WordPress admin dashboard
- Navigate to Plugins → Add New
- Search for "BuddyPress Profanity"
- Click "Install Now" then "Activate"
- Configure the plugin at BuddyPress → Profanity Settings
Manual Installation
- Download the plugin zip file
- Extract the contents to
/wp-content/plugins/buddypress-profanity/ - Activate the plugin through the ‘Plugins’ menu in WordPress
- Navigate to the settings page to configure filtering options
Post-Installation Setup
- Configure Keywords: Add your custom profanity list or use defaults
- Set Filtering Scope: Choose which content types to filter
- Customize Replacement: Select preferred masking characters and styles
- Test Filtering: Create test content to verify functionality
- 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.
- Add a list of words separated by commas
- The plugin will automatically update the keyword list
- 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
- Content Detection: Plugin identifies when filterable content is being displayed
- Keyword Matching: Searches for blocked keywords using regex patterns
- Replacement: Replaces matched words based on rendering settings
- 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-7890or1234567890 - 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:
- Verify BuddyPress is active
- Check Filter Scope settings
- Ensure keywords are properly configured
- Clear cache and test again
False Positives
Issue: Legitimate words being filtered incorrectly
Solutions:
- Switch to Case Insensitive matching
- Disable Strict Filtering
- Review and refine keyword list
- Remove problematic keywords
Performance Issues
Symptoms: Slow page loading
Solutions:
- Review keyword list length
- Enable caching plugin compatibility
- Optimize hosting environment
- Contact support for assistance
Settings Not Saving
Possible Causes:
- Permission issues
- Plugin conflicts
- Server configuration
Solutions:
- Check user permissions
- Deactivate other plugins temporarily
- Increase memory limit
- Verify file permissions
Getting Support
- Documentation: Check this guide thoroughly
- Support Forum: Visit wbcomdesigns.com/support
- Bug Reports: Use GitHub repository for technical issues
- 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
- Regex Caching: Compiled patterns are cached for reuse
- Conditional Loading: Assets only load when needed
- Efficient Algorithms: Optimized string processing
- 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
- Developer: Wbcom Designs
- Contributors: wbcomdesigns, vapvarun
- Support: wbcomdesigns.com/support
Third-Party Libraries
- Selectize.js for enhanced form controls
- WordPress Plugin Boilerplate structure
