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.
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.