Using WordPress ‘author_rewrite_rules’ PHP filter

The author_rewrite_rules WordPress PHP filter allows you to modify rewrite rules used for author archives, including pagination and feed paths for those archives.

Usage

add_filter('author_rewrite_rules', 'your_custom_function');
function your_custom_function($author_rewrite) {
    // your custom code here
    return $author_rewrite;
}

Parameters

  • $author_rewrite (string[]): An array of rewrite rules for author archives, keyed by their regex pattern.

More information

See WordPress Developer Resources: author_rewrite_rules

Examples

Add a custom prefix to author archive URLs

Change author archive URLs from /author/author-name/ to /custom-prefix/author-name/.

add_filter('author_rewrite_rules', 'change_author_prefix');
function change_author_prefix($author_rewrite) {
    $new_rules = [];
    foreach ($author_rewrite as $pattern => $rule) {
        $new_pattern = str_replace('author', 'custom-prefix', $pattern);
        $new_rules[$new_pattern] = $rule;
    }
    return $new_rules;
}

Remove the author prefix from author archive URLs

Change author archive URLs from /author/author-name/ to /author-name/.

add_filter('author_rewrite_rules', 'remove_author_prefix');
function remove_author_prefix($author_rewrite) {
    $new_rules = [];
    foreach ($author_rewrite as $pattern => $rule) {
        $new_pattern = str_replace('author/', '', $pattern);
        $new_rules[$new_pattern] = $rule;
    }
    return $new_rules;
}

Add a custom suffix to author archive URLs

Change author archive URLs from /author/author-name/ to /author/author-name/custom-suffix/.

add_filter('author_rewrite_rules', 'add_author_suffix');
function add_author_suffix($author_rewrite) {
    $new_rules = [];
    foreach ($author_rewrite as $pattern => $rule) {
        $new_pattern = str_replace('(/?)([.$])', '/custom-suffix$1$2', $pattern);
        $new_rules[$new_pattern] = $rule;
    }
    return $new_rules;
}

Add custom rewrite rules for author post types

Add custom rewrite rules for a specific custom post type on author archive pages.

add_filter('author_rewrite_rules', 'author_custom_post_type_rules');
function author_custom_post_type_rules($author_rewrite) {
    $author_rewrite['author/([^/]+)/your-custom-post-type/?$'] = 'index.php?author_name=$matches[1]&post_type=your-custom-post-type';
    return $author_rewrite;
}

Disable author archive pagination rewrite rules

Remove pagination rewrite rules for author archives.

add_filter('author_rewrite_rules', 'disable_author_pagination');
function disable_author_pagination($author_rewrite) {
    foreach ($author_rewrite as $pattern => $rule) {
        if (strpos($pattern, 'paged') !== false) {
            unset($author_rewrite[$pattern]);
        }
    }
    return $author_rewrite;
}