wake-up-neo.com

add_rewrite_rule funktioniert nicht für sprachspezifische Zeichen

Meine Standardsuchabfrage:

example.com/search/?search_text=keyword

Was ich daraus machen möchte:

example.com/search/keyword

Also habe ich das zu meinem function.php hinzugefügt

add_rewrite_rule('^search/([^/]*)?','index.php?pagename=search&search_text=$matches[1]','top');

Funktioniert gut für englisches Alphabet, aber wenn ich in meiner Sprache nach einem Schlüsselwort wie diesem suche:

example.com/search/kırmızı

Der Titel der Seite lautet: k%C4%B1rm%C4%B1z%C4%B1 und es werden keine Ergebnisse zurückgegeben.

Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

2
HOY

Dies geschieht aufgrund der Codierung. Ich gehe davon aus, dass Sie eine Funktion in Ihrer Suchseite haben, die Sie erhalten und in dieser Vorlage search_text verwenden. Sie sollten die URL vorher entschlüsseln.

Die Funktion urldecode() ist genau das, wonach Sie suchen. Ihre Zeichenfolge ist auch UTF-8-codiert. Sie benötigen also Folgendes:

$string = utf8_decode( urldecode( $_GET['search_text'] ) );

Jetzt können Sie die dekodierte Zeichenfolge für Ihre Suche verwenden.

2
Jack Johansson