Filter Manager
The Filter Manager controls where download buttons appear across your WordPress site with flexible inclusion and exclusion rules.
Display Control Modes
All Posts (Default)
Shows buttons on all posts and pages:
- Zero performance overhead
- Immediate
truereturn - No database queries
- Universal coverage
Exclude Selected
Hide buttons on specific content:
- Post type exclusions
- Category/tag filtering
- Individual post targeting
- Conditional logic support
Include Only Selected
Show buttons only on specified content:
- Whitelist approach
- Precise targeting
- Performance optimization
- Selective monetization
Filter Criteria
Post Type Filtering
- Built-in types: posts, pages, custom post types
- Multiple selection support
- Hierarchical post type handling
- Archive page considerations
Taxonomy Filtering
- Category inclusion/exclusion
- Tag-based filtering
- Custom taxonomy support
- Term relationship checking
Individual Post Control
- Specific post ID targeting
- Bulk selection interface
- Search and filter tools
- Quick edit integration
Performance Optimization
Efficient Checking
public static function should_show_buttons( $post_id = null ) {
$mode = get_option( 'smi_display_mode', 'all' );
// Fast path for default mode
if ( $mode === 'all' ) {
return true;
}
// Context-aware filtering
return self::evaluate_display_rules( $post_id, $mode );
}
Caching Strategy
- Per-request result caching
- Object cache integration
- Transient storage for complex rules
- Automatic cache invalidation
Configuration Storage
Option Structure
smi_display_mode– Control mode (all/exclude/include)smi_filter_post_types– Post type filtering arraysmi_filter_categories– Category filtering arraysmi_filter_tags– Tag filtering arraysmi_filter_post_ids– Specific post IDs (comma-separated)
Integration Points
Content Processing
- Block processor integration
- Asset loading optimization
- Template compatibility
- Widget area support
Admin Interface
- Settings page configuration
- Quick edit controls
- Bulk operations
- Preview functionality
Advanced Filtering
Custom Rules
Support for complex filtering logic:
- Multiple criteria combination (AND/OR)
- Date-based filtering
- User role restrictions
- Custom field conditions
Hook System
// Custom filtering logic
add_filter( 'smi_should_show_buttons', function( $show, $post_id ) {
// Custom logic here
return $show;
}, 10, 2 );
Conditional Display
- Logged-in user restrictions
- Geographic targeting
- Device-based filtering
- Time-based controls