Czy ktoś może mi udostępnić funkcję do generowania informacji o błędach?

Dec 30 2020

Funkcje używane przez Wordpress do generowania informacji o błędach są rozproszone w kilku funkcjach i filtrach. Nie mogę ich wszystkich znaleźć. Czy ktoś może zapewnić mi jedną funkcję php do generowania informacji o błędach? Nie potrzebuję wszystkich funkcji Wordpressa, wystarczy zakodować znaki spoza alfabetu łacińskiego i usunąć niedozwolone znaki, które nie są dozwolone w adresie URL.

Ten post zawiera funkcję, ale nie obsługuje znaków innych niż łacińskie.

Dzięki!

Odpowiedzi

1 TomJNowell Dec 30 2020 at 21:14

Ten post zawiera funkcję, ale nie obsługuje znaków innych niż łacińskie.

Dzieje się tak, ponieważ adresy URL nie mogą zawierać znaków spoza alfabetu łacińskiego / znaków ASCII.

Przeglądarki mogą wyświetlać znaki spoza alfabetu łacińskiego, ale to tylko funkcja interfejsu użytkownika.

Na przykład, jeśli odwiedzasz ten Wiktionary URL:, adres URL https://en.wiktionary.org/wiki/わかもの#Japaneseprzeglądarki koduje japońskie znaki, aby uzyskać prawdziwy adres URL: https://en.wiktionary.org/wiki/%E3%82%8F%E3%81%8B%E3%82%82%E3%81%AE#Japanesenastępnie URL dekoduje go podczas wyświetlania adresu URL. Wersja ze znakami procentu to prawdziwy adres URL.

Podobnie jest z innymi kodami znaków spoza ASCII, np. Arabski. Jeśli utworzysz post ze ślimakiem, わかものa następnie zapiszesz i sprawdzisz bazę danych, nie zobaczysz わかもの, zobaczysz %e3%82%8f%e3%81%8b%e3%82%82%e3%81%ae. Podobnie interfejs użytkownika pokaże japońskie znaki, ale jeśli skopiujesz link, otrzymasz zakodowaną wersję.

Jeśli następnie zaktualizujemy bazę danych i zmienimy informacje o treści wiadomości na わかもの, post nie może zostać załadowany i otrzymamy błąd 404. Dzieje się tak, ponieważ informacja o błędzie jest nieprawidłowa i nie jest możliwe załadowanie adresu URL, który pasuje do tej informacji.

tak, potrzebuję, aby znaki inne niż łacińskie były zakodowane jako% xx

Potrzebujesz urlencodetegoecho urlencode( $slug )