web-dev-qa-db-fra.com

Correction de la règle de réécriture personnalisée

Je suis l'exemple WP . Je sais que ma règle de réécriture est en train d'être ajoutée à WordPress, je dois donc corriger la règle. Alors voici mon code actuel:

add_filter('rewrite_rules_array','mcs_TextbookRewriteRules');
add_filter('query_vars','mcs_insertTextbookQueryVars');

// Adding a new rule
function mcs_TextbookRewriteRules($rules) {
    $newrules = array();
    $newrules['textbook/(cantonese|mandarin)/([C|M]K?[0-9]+)/([0-9]+)$'] = 'index.php?pagename=textbook/$matches[1]/?cls=$matches[2]&ch=$matches[3]';
    //$newrules['textbook/(cantonese|mandarin)/([C|M]K?[0-9]+)/([0-9]+)$'] = 'textbook/$matches[1]/index.php?cls=$matches[2]&ch=$matches[3]';
    return $newrules + $rules;
}

// Adding the id var so that WP recognizes it
    function mcs_insertTextbookQueryVars($vars) {
    array_Push($vars, 'cls');
    array_Push($vars, 'ch');
    return $vars;
}

Je veux mapper http://localhost/wordpress/textbook/cantonese/CK1/6 à http://localhost/wordpress/textbook/cantonese/?cls=CK1&ch=6

1
Evan Yeung

Je vois un deuxième ? dans vos variables de requête (avant la variable de requête cls), probablement du fait de l’expérimentation avec la forme commentée, je pense que vous souhaitez utiliser & ici.

Votre hook query_vars ajoute actuellement la variable id, mais vous utilisez cls et ch dans votre règle de réécriture, de sorte que cela n'aura aucun effet.

Si vous modifiez les règles de réécriture, je recommande mon plug-in d'analyse de réécriture (bientôt dans le référentiel, ), mais je reçois l'actuel version via Dropbox ), il vous aide à déboguer ces choses.

0
Jan Fabry