Исправление пользовательского правила перезаписи
Я следую примеру WP. Я знаю, что мое правило перезаписи добавляется в wordpress, поэтому мне просто нужно исправить фактическое правило. Итак, вот мой текущий код:
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;
}
Я хочу сопоставить http://localhost/wordpress/textbook/cantonese/CK1/6
с http://localhost/wordpress/textbook/cantonese/?cls=CK1&ch=6
1 answers
Я вижу вторую ?
в ваших переменных запроса (перед переменной запроса cls
), вероятно, из-за экспериментов с закомментированной формой, я думаю, вы хотите использовать &
там.
Ваш query_vars
крючок в настоящее время добавляет переменную id
, но вы используете cls
и ch
в своем правиле перезаписи, поэтому это не будет иметь эффекта.
Если вы меняете правила перезаписи, я рекомендую мой плагин анализатора перезаписи (скоро в репозитории, , но получите текущую версию через Dropbox), он помогает вам отлаживать эти вещи.