web-dev-qa-db-fra.com

Créer une sous-page/utilisateur/ou/mon-profil/comme/auteur/avec une requête supplémentaire telle que/utilisateur/utilisateur123

Je crée un projet et à cause de la tâche, j'ai besoin de ceci:

domain.com/user/user123 - renvoie le profil de "user123" avec ses informations personnelles

domain.com/my-profile - renvoie le profil de l'utilisateur actuellement connecté

J'ai essayé add_query_args ou quelques tutoriels (commehttp: //www.rlmseo.com/blog/passing-get-query-string-parameters-in -wordpress-url /), mais cela ne fonctionne pas pour moi.

Peut-être y at-il une option avec htaccess, mais cette partie m’embrouille énormément (je veux dire quand j’utilise WordPress). Des idées?

Merci.

1
Doctore

Si je vous comprends bien, vous pouvez le faire avec la fonction add_rewrite_rule(); pour mapper l’url vers des variables de requête spécifiques. 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');

Ce tutoriel peut vous aider: http://clivern.com/how-to-add-custom-rewrite-rules-in-wordpress/

UPDATE:

Après avoir exécuté ce code, vous devez accéder à Settings->Permalinks et cliquer simplement sur le bouton Enregistrer pour effacer toutes les règles de réécriture (il s’agit de la solution à de nombreux problèmes de permalien).

0
pooria