General Settings
Configure ThemeRuby Multi Authors to work exactly how you need it.
Accessing Settings
Navigate to the settings page:
WordPress Admin > Settings > ThemeRuby Multi Authors
You'll see several sections of settings.
Supported Post Types
Control which post types can have multiple authors.
What It Does
Enable or disable multi-author support for different post types:
- Posts
- Pages
- Custom Post Types (if available)
Configuration
Default:
☑ Post
☐ Page
To Change:
- Check boxes for post types you want to support
- Uncheck boxes for post types you don't want to support
- Click Save Changes
Example Use Cases:
Blog with Pages:
☑ Post
☑ Page
News Site:
☑ Post
☑ News Articles (custom post type)
☐ Page
E-commerce:
☑ Post
☐ Product (keep single author for products)
Adding Custom Post Type Support
If you don't see your custom post type:
// Add support programmatically
add_action( 'init', 'add_multiauthor_support_to_cpt' );
function add_multiauthor_support_to_cpt() {
add_post_type_support( 'your_post_type', 'tmauthors' );
}
Archive Filtering
Control how author archives work.
Enable Archive Filtering
What It Does:
- Author archive pages show ALL posts by that author
- Includes posts where they're co-authors (not just primary author)
- Works automatically with your theme
Default: ✅ Enabled (recommended)
When to Disable:
- You're using custom archive queries
- You have conflicts with other plugins
- You want to handle filtering manually
Example:
With Archive Filtering Enabled:
URL: /author/john-doe/
Shows:
✅ Posts where John is primary author
✅ Posts where John is co-author
✅ All posts John contributed to
Without Archive Filtering Enabled:
Shows:
✅ Only posts where John is primary author
❌ Posts where John is co-author (hidden)
WP_Query Parameter Support
Enable filtering posts by authors in WP_Query.
Enable author Parameter Filtering
What It Does:
// This will work:
new WP_Query( array(
'author' => 5, // Shows posts where user 5 is any author
) );
Default: ✅ Enabled (recommended)
Enable author_name Parameter Filtering
What It Does:
// This will work:
new WP_Query( array(
'author_name' => 'john-doe', // Shows posts by john-doe
) );
Default: ✅ Enabled (recommended)
Enable author__in Parameter Filtering
What It Does:
// This will work:
new WP_Query( array(
'author__in' => array( 1, 5, 8 ), // Posts by these authors
) );
Default: ✅ Enabled (recommended)
Enable author__not_in Parameter Filtering
What It Does:
// This will work:
new WP_Query( array(
'author__not_in' => array( 3, 6 ), // Exclude these authors
) );
Default: ✅ Enabled (recommended)
When to Disable
Disable if:
- You have conflicts with other plugins modifying queries
- You need custom author filtering logic
- You're experiencing performance issues (rare)
Performance Note: These filters use efficient LEFT JOIN queries. Performance impact is minimal.
SEO Integration
Integrate with popular SEO plugins.
Enable SEO Integration
What It Does:
- Integrates with Yoast SEO
- Integrates with Rank Math
- Updates meta tags with multiple authors
- Improves author markup for search engines
Supported Plugins:
- ✅ Yoast SEO
- ✅ Rank Math
- ✅ All in One SEO (planned)
Default: ✅ Enabled (recommended)
Example Integration:
<!-- Without SEO Integration -->
<meta name="author" content="John Doe" />
<!-- With SEO Integration -->
<meta name="author" content="John Doe, Jane Smith, Bob Johnson" />
Author Box
Display an author bio box at the end of posts.
Enable Author Box
What It Does:
- Automatically adds author information at end of posts
- Shows author avatar, name, bio, and social links
- Displays all authors for multi-author posts
- Customizable via CSS
Default: ❌ Disabled
To Enable:
- Check Enable Author Box
- Click Save Changes
- View any post to see the author box
Example Author Box:
┌─────────────────────────────────────┐
│ About the Authors │
│ │
│ [Avatar] John Doe │
│ Web developer and WordPress expert │
│ View all posts → │
│ │
│ [Avatar] Jane Smith │
│ Content writer and editor │
│ View all posts → │
└─────────────────────────────────────┘
Customizing Author Box
Via CSS:
/* Customize author box appearance */
.ema-author-box {
border: 2px solid #e0e0e0;
padding: 20px;
margin: 30px 0;
background: #f9f9f9;
}
.ema-author-box .author-avatar {
float: left;
margin-right: 15px;
border-radius: 50%;
}
.ema-author-box .author-name {
font-size: 18px;
font-weight: bold;
color: #333;
}
.ema-author-box .author-bio {
color: #666;
line-height: 1.6;
}
Via Filter:
// Customize author box HTML
add_filter( 'tmauthors_box_html', 'custom_author_box', 10, 2 );
function custom_author_box( $html, $post_id ) {
$authors = tmauthors_get_post_authors( $post_id );
$custom_html = '<div class="my-custom-author-box">';
foreach ( $authors as $author ) {
$custom_html .= '<div class="author-item">';
$custom_html .= get_avatar( $author->ID, 60 );
$custom_html .= '<h4>' . $author->display_name . '</h4>';
$custom_html .= '<p>' . $author->description . '</p>';
$custom_html .= '</div>';
}
$custom_html .= '</div>';
return $custom_html;
}
Disable on Specific Posts:
// Disable author box for specific posts
add_filter( 'tmauthors_show_author_box', 'hide_author_box_conditionally', 10, 2 );
function hide_author_box_conditionally( $show, $post_id ) {
// Hide on specific post
if ( $post_id === 123 ) {
return false;
}
// Hide in specific category
if ( has_category( 'news', $post_id ) ) {
return false;
}
return $show;
}
Cache Settings
Control plugin caching behavior.
Enable Caching
What It Does:
- Caches author queries for better performance
- Reduces database queries
- Uses WordPress object cache
- Automatically cleared when authors change
Default: ✅ Enabled (recommended)
Performance Impact:
Without Cache:
- 3-5 database queries per post
- ~10-20ms processing time
With Cache:
- 0-1 database queries per post
- ~1-2ms processing time
When to Disable:
- Debugging author-related issues
- Using external object cache with issues
- Testing author assignment changes
Clear Cache
Manual Cache Clear:
- Go to Settings > ThemeRuby Multi Authors
- Scroll to Actions section
- Click Clear Cache button
- All cached data is cleared
Programmatic Cache Clear:
// Clear all plugin cache
do_action( 'tmauthors_clear_cache' );
// Clear cache for specific post
delete_transient( 'ema_post_authors_' . $post_id );
wp_cache_delete( 'post_authors_' . $post_id, 'ema_post_authors' );
Auto-Clear Events:
Cache automatically clears when:
- Authors are assigned/removed
- Post is updated
- User profile is updated
- Plugin settings change
Capabilities Settings
Control who can do what with authors.
Default Capabilities
| User Role | Can Assign Authors | Can Assign Self | Can View All Authors |
|---|---|---|---|
| Administrator | ✅ Yes | ✅ Yes | ✅ Yes |
| Editor | ✅ Yes | ✅ Yes | ✅ Yes |
| Author | ⚠️ Self Only | ✅ Yes | ❌ No |
| Contributor | ❌ No | ❌ No | ❌ No |
| Subscriber | ❌ No | ❌ No | ❌ No |
Customizing Capabilities
Allow Authors to Assign Other Authors:
add_filter( 'tmauthors_user_can_assign_authors', 'allow_authors_to_assign', 10, 3 );
function allow_authors_to_assign( $can, $user_id, $post_id ) {
$user = get_user_by( 'id', $user_id );
if ( in_array( 'author', $user->roles ) ) {
return true;
}
return $can;
}
Restrict Assignable Authors:
add_filter( 'tmauthors_assignable_users', 'restrict_assignable_authors', 10, 2 );
function restrict_assignable_authors( $users, $post_id ) {
// Only allow users from specific department
$filtered = array_filter( $users, function( $user ) {
return get_user_meta( $user->ID, 'department', true ) === 'editorial';
} );
return $filtered;
}
Import/Export Settings
Export and import your configuration.
Export Settings
// Get all plugin settings
$settings = array(
'supported_post_types' => get_option( 'ema_supported_post_types' ),
'enable_archive_filtering' => get_option( 'ema_enable_archive_filtering' ),
'enable_author_filtering' => get_option( 'ema_enable_author_filtering' ),
'enable_author_name_filtering' => get_option( 'ema_enable_author_name_filtering' ),
'enable_author_in_filtering' => get_option( 'ema_enable_author_in_filtering' ),
'enable_author_not_in_filtering' => get_option( 'ema_enable_author_not_in_filtering' ),
'enable_seo_integration' => get_option( 'ema_enable_seo_integration' ),
'enable_author_box' => get_option( 'ema_enable_author_box' ),
'enable_cache' => get_option( 'ema_enable_cache' ),
);
// Export as JSON
$json = json_encode( $settings, JSON_PRETTY_PRINT );
file_put_contents( 'ema-settings.json', $json );
Import Settings
// Import settings from JSON
$json = file_get_contents( 'ema-settings.json' );
$settings = json_decode( $json, true );
foreach ( $settings as $key => $value ) {
update_option( 'ema_' . $key, $value );
}
Recommended Settings
For Blogs
☑ Supported Post Types: Post
☑ Enable Archive Filtering
☑ Enable WP_Query Support (all)
☑ Enable SEO Integration
☐ Enable Author Box (optional)
☑ Enable Caching
For News Sites
☑ Supported Post Types: Post, Article
☑ Enable Archive Filtering
☑ Enable WP_Query Support (all)
☑ Enable SEO Integration
☑ Enable Author Box
☑ Enable Caching
For Magazines
☑ Supported Post Types: Post, Feature, Review
☑ Enable Archive Filtering
☑ Enable WP_Query Support (all)
☑ Enable SEO Integration
☑ Enable Author Box
☑ Enable Caching
Troubleshooting Settings
Settings Not Saving
Solution:
- Check file permissions
- Verify database connection
- Disable caching plugins temporarily
- Check PHP error logs
Settings Resetting
Possible causes:
- Plugin conflict
- Theme conflict
- Caching issue
Solution:
- Deactivate other plugins one by one
- Switch to default theme temporarily
- Clear all caches
Next Steps
- Display Options - Customize how authors appear
- Template Tags - Use in themes
- Hooks & Filters - Advanced customization