Kann mir jemand eine Funktion zur Erzeugung von Schnecken geben?

Dec 30 2020

Die Funktionen, mit denen Wordpress Slugs generiert, sind auf verschiedene Funktionen und Filter verteilt. Ich kann sie nicht alle finden. Kann mir jemand eine einzige PHP-Funktion zur Erzeugung von Slugs zur Verfügung stellen? Ich benötige nicht alle Funktionen von Wordpress, sondern muss nur nicht-lateinische Zeichen codieren und illegale Zeichen entfernen, die in der URL nicht zulässig sind.

Dieser Beitrag bietet eine Funktion, kann jedoch keine nicht-lateinischen Zeichen verarbeiten.

Vielen Dank!

Antworten

1 TomJNowell Dec 30 2020 at 21:14

Dieser Beitrag bietet eine Funktion, kann jedoch keine nicht-lateinischen Zeichen verarbeiten.

Dies liegt daran, dass URLs keine Nicht-Latein- / ASCII-Zeichen enthalten dürfen.

Browser zeigen Ihnen möglicherweise nicht-lateinische Zeichen an, dies ist jedoch nur eine Funktion der Benutzeroberfläche.

Wenn Sie beispielsweise diese Wiktionary-URL besuchen: https://en.wiktionary.org/wiki/わかもの#JapaneseIhre Browser-URL codiert die japanischen Zeichen, um die echte URL zu erhalten. Die https://en.wiktionary.org/wiki/%E3%82%8F%E3%81%8B%E3%82%82%E3%81%AE#JapaneseURL dekodiert sie dann, wenn die URL angezeigt wird . Die Version mit den Prozentzeichen ist die echte URL.

Ebenso bei allen anderen Nicht-ASCII-Zeichencodes, z. B. Arabisch. Wenn Sie einen Beitrag mit dem Slug erstellen わかものund dann die Datenbank speichern und überprüfen, werden Sie nicht sehen わかもの, Sie werden sehen %e3%82%8f%e3%81%8b%e3%82%82%e3%81%ae. Ebenso zeigt Ihnen die Benutzeroberfläche die japanischen Zeichen, aber wenn Sie den Link kopieren, erhalten Sie die codierte Version.

Wenn wir dann die Datenbank aktualisieren und den Slug des Posts in ändern わかもの, kann der Post jetzt nicht geladen werden, und wir erhalten eine 404. Dies liegt daran, dass der Slug ungültig ist und es nicht möglich ist, eine URL zu laden, die diesem Slug entspricht.

Ja, ich brauche nicht-lateinische Zeichen, um als% xx codiert zu werden

Du musst es urlencodetunecho urlencode( $slug )