Skip to main content

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:

  1. Check boxes for post types you want to support
  2. Uncheck boxes for post types you don't want to support
  3. 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:

  1. Check Enable Author Box
  2. Click Save Changes
  3. 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:

  1. Go to Settings > ThemeRuby Multi Authors
  2. Scroll to Actions section
  3. Click Clear Cache button
  4. 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 RoleCan Assign AuthorsCan Assign SelfCan 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 );
}

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:

  1. Check file permissions
  2. Verify database connection
  3. Disable caching plugins temporarily
  4. 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​