it-swarm.com.de

Korrektur der benutzerdefinierten Umschreiberegel

Ich folge dem WP-Beispiel . Ich weiß, dass meine Umschreiberegel zu WordPress hinzugefügt wird, daher muss ich nur die eigentliche Regel korrigieren. Also hier ist mein aktueller Code:

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;
}

Ich möchte http://localhost/wordpress/textbook/cantonese/CK1/6 auf http://localhost/wordpress/textbook/cantonese/?cls=CK1&ch=6 abbilden

1
Evan Yeung

Ich sehe einen zweiten ? in Ihren Abfragevariablen (vor der cls Abfragevariablen), wahrscheinlich aus dem Experimentieren mit dem auskommentierten Formular, ich denke, Sie möchten dort & verwenden.

Ihr query_vars-Hook fügt derzeit die id-Variable hinzu, Sie verwenden jedoch cls und ch in Ihrer Umschreiberegel, sodass dies keine Auswirkungen hat.

Wenn Sie die Rewrite-Regeln ändern, empfehle ich mein Rewrite-Analyzer-Plugin (bald im Repository, , aber holen Sie sich den aktuellen Version über Dropbox ), hilft es Ihnen, diese Dinge zu debuggen.

0
Jan Fabry