web-dev-qa-db-fra.com

Passage de la chaîne JQuery à l'URL Worldpress

J'ai déjà suivi le tutoriel ici: http://www.rlmseo.com/blog/passing-get-query-string-parameters-in-wordpress-url/ Mais ça ne marche toujours pas.

Dans le function.php, mon code est

    //decode wordpress url to jquery string
    function add_query_vars($aVars) {
    $aVars[] = "lastName"; 
    return $aVars;
    }

    // hook add_query_vars function into query_vars
    add_filter('query_vars', 'add_query_vars');

    function add_rewrite_rules($aRules) {
    $aNewRules = array('^physician-profile/([^/]*)/?' => 'physician-profile?lastName=$matches[1]');
    $aRules = $aNewRules + $aRules;
    return $aRules;
    }
    // hook add_rewrite_rules function into rewrite_rules_array
    add_filter('rewrite_rules_array', 'add_rewrite_rules');

Je voudrais mon lien de

    physician-profile?lastName=Rae-Lee 

à

    physician-profile/Rae-Lee.

Dans la page de profil du médecin, mon code est: mais je ne sais pas pourquoi je le mets ici. Il semble que juste renvoyer la valeur de lastName.

     if(isset($wp_query->query_vars['lastName'])) {
     $lastNameS=(urldecode($wp_query->query_vars['lastName'])); 

Dans la page principale, j'ai lié le lien médecin en tant que

    physician-profile/Rae-Lee, 

mais cela continue à aller à la page d'accueil. Quand j'ai essayé de changer le lien comme

    physician-profile?lastName=Rae-Lee, 

il va directement à cette page, mais l'URL ne change pas. En tant que débutant wordpress, pourriez-vous indiquer quelle partie de mon erreur je me suis trompée? Ou ai-je besoin d'autres codes? Merci de votre aide!

1
Pluto

Le didacticiel est obsolète et il semble qu'il ait manqué d'éliminer les règles.

function add_rewrite_rule_and_tag() {

    global $wp_rewrite;

    add_rewrite_rule( '^physician-profile/([^/]*)/?', 'physician-profile?lastName=$matches[1]', 'top' );
    add_rewrite_tag( '%lastName%','([^&]+)' );

    if ( ! isset( $wp_rewrite->rules['^physician-profile/([^/]*)/?'] ) )
        $wp_rewrite->flush_rules();

    return;

}

add_action( 'init', 'add_rewrite_rule_and_tag', 99 );

Vous pouvez accéder à la requête var `lastName´ avec

gloabl $wp_query;
$lastName = $wp_query->query_vars['lastName'];
0
Ralf912