How to remove author base in WordPress

后端 未结 6 1463
一整个雨季
一整个雨季 2021-01-05 07:25

Standard author links in WordPress look like: example.com/author/johnsmith

I\'d like to remove the author/ part of the URL so the username

相关标签:
6条回答
  • 2021-01-05 08:00

    It seems we have to refresh permalinks structure, but each time someone registered a new rule.

    So try to flush it automatically with this :

    $wp_rewrite->flush_rules();
    

    In your functions.php file.

    I had the same problem but with this it seems to be ok. But there's still a problem of conflict with page & post name.

    0 讨论(0)
  • 2021-01-05 08:05

    Try: RedirectMatch 301 ^/author/(.+)$ http://www.yourblog.com/$1

    This will go in your .htaccess

    0 讨论(0)
  • 2021-01-05 08:09

    I've tested this combined solution but wasn't working before regenerating of permalinks. You can do it, as brasfolio described : simply clicking save on permalink page in dashboard.

    add_filter('author_rewrite_rules', 'no_author_base_rewrite_rules');
    function no_author_base_rewrite_rules($author_rewrite) {
       global $wpdb;
       $author_rewrite = array();
       $authors = $wpdb->get_results("SELECT user_nicename AS nicename from $wpdb->users");   
       foreach($authors as $author) {
           $author_rewrite["({$author->nicename})/page/?([0-9]+)/?$"] = 'index.php?author_name=$matches[1]&paged=$matches[2]';
           $author_rewrite["({$author->nicename})/?$"] = 'index.php?author_name=$matches[1]';
       }  
       return $author_rewrite;
    }
    
    if( !is_admin() ) {
    add_action('init', 'author_rewrite_so_22115103');
    }
    
    function author_rewrite_so_22115103() {
       global $wp_rewrite; 
       if( 'author' == $wp_rewrite->author_base ) $wp_rewrite->author_base = null;
    }
    
    0 讨论(0)
  • 2021-01-05 08:13

    Also add this near the other similar two, in order to redirect the feeds as well:

    $author_rewrite["({$author->nicename})/page/?([0-9]+)/?$"] = 'index.php?author_name=$matches[1]&paged=$matches[2]';
    
    0 讨论(0)
  • 2021-01-05 08:14

    This Question is similar to this question...

    You can do something like This. This is nearly what you wanted..

    Hope this will work...

    0 讨论(0)
  • 2021-01-05 08:20

    Your code appears fine. Manually flush your permalink structure to reflect these changes.

    1)  Settings -> Permalinks -> choose default -> Save
    2)  Revert the settings to original.
    
    0 讨论(0)
提交回复
热议问题