1

I am creating some project and because of task, I need this:

domain.com/user/user123 - return profile of "user123" with his personal info

domain.com/my-profile - return profile of current logged user

I've tried add_query_args or some tutorials ( likehttp://www.rlmseo.com/blog/passing-get-query-string-parameters-in-wordpress-url/), but it doesn't work for me.

Maybe there is an option with htaccess way, but this part is very confusing me (I mean when I use WordPress way). Any ideas?

Thanks.

1 Answer 1

0

If I understand you well, you can do that with add_rewrite_rule(); function to map the url to specific query variables. https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

function myfunc_rewrite_rules() {
  add_rewrite_rule('user/?([^/]*)', 'index.php?pagename=user&username=$matches[1]', 'top');
 }

 function myfunc_username_query_vars($vars) {
  $vars[] = 'username';
  return $vars;
 }

add_action('init', 'myfunc_rewrite_rules');
 //add query vars (username) to wordpress
 add_filter('query_vars', 'myfunc_username_query_vars');

function myfunc_display() {
  $userpage = get_query_var('pagename');
  $username = get_query_var('username');
  if ('user' == $userpage && '' == $username ):
   //show all users
   exit;
  elseif ('user' == $userpage && '' != $username ):
   //show specific user
   exit;
  endif;
 }

 //register plugin custom pages display
 add_filter('template_redirect', 'myfunc_display');

This tutorial can help: http://clivern.com/how-to-add-custom-rewrite-rules-in-wordpress/

UPDATE:

After you run this code, you must go to Settings->Permalinks and just hit save button to flush all rewrite rules.(This is the solution for many permalink issues)

4
  • So, part that shows all users working well, thank you. But I don't know why, WordPress redirect me to main page when I add user123 after /user/
    – Doctore
    Commented Mar 5, 2017 at 15:38
  • But this work correctly - domain.com/?pagename=user&username=a and of course this - domain.com/user/?username=a
    – Doctore
    Commented Mar 5, 2017 at 15:43
  • @Doctore Try flushing rewrite rules by going to Settings->Permalinks and just hit save. then try again
    – pouria
    Commented Mar 5, 2017 at 15:48
  • @Doctore You're welcome my friend
    – pouria
    Commented Mar 5, 2017 at 15:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.