A comprehensive WordPress noticeboard plugin for internal portals with advanced analytics tracking and extensive hook system for third-party integrations.
- Nadim Tuhin
- Email: nadimtuhin@gmail.com
- GitHub: https://github.com/nadimtuhin
- Notice Management: Full CRUD operations with rich text editor
- Role-Based Permissions: WordPress capability system integration
- Categories: Color-coded notice categories (General, Policy, Event, Urgent)
- Priority Levels: High, Medium, Low with visual indicators
- Scheduling: Start/end date management
- Status Control: Draft, Published, Archived states
- User Tracking: Track logged-in WordPress users with timestamps
- Anonymous Tracking: Simple counter for non-logged visitors
- View Analytics: Detailed view reports and statistics
- Export Functionality: CSV export of analytics data
- Read Status: Track read/unread status per user
- Responsive Design: Mobile-first approach
- Shortcodes:
[noticeboard]and[notice id="123"] - Widgets: Sidebar widget for latest notices
- Dashboard Widget: Admin dashboard integration
- Accessibility: Screen reader friendly and keyboard navigable
- WP AJAX: Native WordPress AJAX implementation
- Hook System: 38+ action and filter hooks for extensibility
- Security: Nonce verification, capability checks, data sanitization
- Performance: Optimized queries and Intersection Observer for view tracking
- Standards Compliant: WordPress coding standards
- Download the plugin files
- Upload to
/wp-content/plugins/wp-noticeboard/ - Activate the plugin through the 'Plugins' menu in WordPress
- Configure settings and permissions as needed
[noticeboard limit="10" category="general" priority="high"]Attributes:
limit: Number of notices to display (default: 10)category: Filter by category slugpriority: Filter by priority (high, medium, low)show_category: Show category badge (true/false)show_priority: Show priority indicator (true/false)show_date: Show creation date (true/false)show_author: Show author name (true/false)excerpt_length: Number of words for excerpt (default: 150)
[notice id="123" show_category="true" track_view="true"]Add the "Noticeboard Widget" to any sidebar to display latest notices with customizable options.
The plugin provides extensive hook system for developers:
wp_noticeboard_init- Plugin initializationwp_noticeboard_notice_created- After notice creationwp_noticeboard_notice_updated- After notice updatewp_noticeboard_notice_deleted- After notice deletionwp_noticeboard_view_tracked- After view tracking- And 20+ more hooks...
wp_noticeboard_notice_data- Modify notice datawp_noticeboard_display_content- Modify display contentwp_noticeboard_analytics_data- Modify analytics datawp_noticeboard_user_capabilities- Modify user permissions- And 12+ more filters...
// Send Slack notification for high priority notices
add_action('wp_noticeboard_notice_created', function($notice_id, $data) {
if ($data['priority'] === 'high') {
// Send to Slack webhook
wp_remote_post('https://hooks.slack.com/webhook', array(
'body' => json_encode(array(
'text' => 'New urgent notice: ' . $data['title']
))
));
}
}, 10, 2);
// Add engagement score to analytics
add_filter('wp_noticeboard_analytics_data', function($data, $notice_id) {
$data['engagement_score'] = calculate_engagement_score($notice_id);
return $data;
}, 10, 2);manage_notices- Full notice management (Admin, Editor)create_notices- Create new notices (Admin, Editor, Author)edit_notices- Edit existing notices (Admin, Editor)delete_notices- Delete notices (Admin only)view_analytics- View analytics data (Admin, Editor)export_analytics- Export analytics (Admin only)
wp_noticeboard_notices- Main notices storagewp_noticeboard_categories- Notice categorieswp_noticeboard_views- User view trackingwp_noticeboard_anonymous_views- Anonymous view counters
- WordPress 5.0+
- PHP 7.4+
- MySQL 5.6+
- Nonce verification for all AJAX requests
- Capability checks for all operations
- Data sanitization and validation
- SQL injection prevention
- XSS protection for notice content
- Database indexing on frequently queried fields
- Intersection Observer for efficient view tracking
- Optimized queries with proper caching
- Minimal performance impact
wp-noticeboard/
βββ wp-noticeboard.php # Main plugin file
βββ README.md # This file
βββ IMPLEMENTATION_PLAN.md # Development plan
βββ HOOKS_DOCUMENTATION.md # Complete hook reference
βββ includes/ # Core classes
βββ admin/ # Admin interface
βββ public/ # Frontend functionality
βββ assets/ # CSS/JS files
βββ templates/ # Display templates
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Implementation Plan - Detailed development plan
- Hooks Documentation - Complete hook reference with examples
- Initial release
- Complete notice management system
- Analytics tracking for logged-in and anonymous users
- Extensive hook system for extensibility
- WordPress AJAX implementation
- Responsive design
- Role-based permissions
- Export functionality
GPL v2 or later - https://www.gnu.org/licenses/gpl-2.0.html
For support, email nadimtuhin@gmail.com or create an issue on GitHub.
Note: This plugin is designed for internal portal use and includes comprehensive analytics tracking. Ensure compliance with your organization's privacy policies when tracking user interactions.