web-dev-qa-db-fra.com

Mappage de plusieurs URL sur la même page

Je viens de tomber sur cette page avec des exigences presque similaires à la mienne

Plusieurs points de terminaison sur la même page

je dois obtenir les mêmes fonctionnalités, mais je souhaite également transmettre certains paramètres à la page où toutes ces URL seront mappées. par exemple

http://mysite.com/test/link1
http://mysite.com/test/link2 
http://mysite.com/test/link3 

je veux les mapper à la même URL

http://mysite.com/test/finalDestination

en même temps, je veux aussi envoyer d'autres paramètres comme

  1. email d'utilisateur
  2. nom d'utilisateur

afin que je puisse les utiliser à cette page pour ma logique personnalisée.Je sais comment le faire dans JSP/Java où je peux les envoyer en tant que paramètres de demande dans POST demande et peut les retenter dans le JSP final

comment je peux y arriver, c'est wordpress en utilisant php.my. Les préfrences ne doivent pas utiliser de chaîne de requête.

Ou est-ce possible comme si je créais une URL avec comme

http://mysite.com/test/user1
http://mysite.com/test/user2 
http://mysite.com/test/user3

où user1 etc. peut être extrait de la base de données et nous pouvons nous assurer qu'ils seront uniques grâce à l'application et au mappage de ces URL vers le même point de terminaison. Comment puis-je récupérer le nom d'utilisateur dans ma dernière page?

Merci d'avance

1
Umesh Awasthi

Vous pouvez utiliser la même réponse que la question à laquelle vous avez fait référence (j'ai répondu). Voici comment vous changeriez pour passer les arguments:

<?php
    add_action('init', 'add_my_rule');

    function add_my_rule()
    {
        global $wp;
        $wp->add_query_var('args');

        add_rewrite_rule('test\/finaldestination\/(.*)','index.php?pagename=about&args=$matches[1]','top');
    }
?>

En supposant que "destination finale" reste toujours le même et que le nom de page (slug) est "à propos de" (vous pouvez modifier les deux). Appliquez votre modèle personnalisé à cette page et sur le modèle, procédez comme suit:

//if you visit http://.../test/finaldestination/name/romeo, then $params will be name/romeo. You can explode this and get the value.
$params = get_query_var('args');

Après avoir placé ce code dans votre fichier, allez simplement à Settings>Permalinks et cliquez sur le bouton de sauvegarde. Je n'ai pas essayé cela, mais j'ai utilisé quelque chose de similaire dans un projet récent et je suis sûr que cela fonctionnera.

1
Rutwick Gangurde

Assurez-vous simplement d'ajouter une URL canonique dans l'en-tête des pages dupliquées, en faisant référence à l'instance principale de la page ... sinon vous obtiendrez un contenu dupliqué, ce qui est mauvais pour le référencement (ce qui importe uniquement si ces pages sont publiques. et indexé).

J'irais également vers author.php ou le lien permanent% author% du thème s'il s'agit d'utilisateurs WordPress ordinaires. Vous pouvez accéder aux données à propos de comme ça:

$author = get_user_by('slug', $author_name);
$author_id = (int)$author->ID;
$name = $author->first_name.' '.$author->last_name;

WP Codex: get_user_by ()

0
Martin Zeitler