Change author permalink

The original urls for users look like /author/login/

Is it possible to replace login by user’s id?

Read More

In my dream urls should become to /users/34/ (34 is user id).

Thanks.

Related posts

Leave a Reply

3 comments

  1. you need 3 simple functions and hooks

    first change the author base:

    //change author/username base to users/userID
    function change_author_permalinks() {
      global $wp_rewrite;
       // Change the value of the author permalink base to whatever you want here
       $wp_rewrite->author_base = 'users';
      $wp_rewrite->flush_rules();
    }
    
    add_action('init','change_author_permalinks');
    

    then add users to query_vars:

    add_filter('query_vars', 'users_query_vars');
    function users_query_vars($vars) {
        // add lid to the valid list of variables
        $new_vars = array('users');
        $vars = $new_vars + $vars;
        return $vars;
    }
    

    then add the new rewrite rule:

    function user_rewrite_rules( $wp_rewrite ) {
      $newrules = array();
      $new_rules['users/(d*)$'] = 'index.php?author=$matches[1]';
      $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    }
    add_filter('generate_rewrite_rules','user_rewrite_rules');
    

    Now if you don’t know how to use this, just copy all of the code and paste in your theme’s functions.php file.