Исправление пользовательского правила перезаписи


Я следую примеру 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

Author: Evan Yeung, 2011-01-24

1 answers

Я вижу вторую ? в ваших переменных запроса (перед переменной запроса cls), вероятно, из-за экспериментов с закомментированной формой, я думаю, вы хотите использовать & там.

Ваш query_vars крючок в настоящее время добавляет переменную id, но вы используете cls и ch в своем правиле перезаписи, поэтому это не будет иметь эффекта.

Если вы меняете правила перезаписи, я рекомендую мой плагин анализатора перезаписи (скоро в репозитории, , но получите текущую версию через Dropbox), он помогает вам отлаживать эти вещи.

 0
Author: Jan Fabry, 2017-04-13 12:37:53