Кто-нибудь может предоставить мне функцию для генерации слизней?
Функции, используемые Wordpress для создания слизней, разбросаны по нескольким функциям и фильтрам. Я не могу найти их всех. Кто-нибудь может предоставить мне одну функцию php для генерации слизней? Мне не нужны все функции Wordpress, просто нужно кодировать нелатинские символы и удалять запрещенные символы, которые не разрешены в URL.
Этот пост предоставляет функцию, но он не может обрабатывать нелатинские символы.
Спасибо!
1 answers
Это сообщение предоставляет функцию, но оно не может обрабатывать нелатинские символы.
Это потому, что URL-адреса не могут содержать нелатинские/ASCII-символы.
Браузеры могут показывать вам нелатинские символы, но это всего лишь функция пользовательского интерфейса.
Например, если вы посещаете этот URL-адрес викисловаря: https://en.wiktionary.org/wiki/わかもの#Japanese
, URL-адрес вашего браузера кодирует японские символы, чтобы получить реальный URL-адрес: https://en.wiktionary.org/wiki/%E3%82%8F%E3%81%8B%E3%82%82%E3%81%AE#Japanese
, затем URL-адрес декодирует его при отображении URL-адреса. Версия со знаками процента является реальный URL.
Аналогично любым другим кодам символов, отличным от ASCII, например арабским. Если вы создадите сообщение с помощью slug わかもの
, затем сохраните и проверьте базу данных, вы не увидите わかもの
, вы увидите %e3%82%8f%e3%81%8b%e3%82%82%e3%81%ae
. Аналогично, пользовательский интерфейс покажет вам японские иероглифы, но если вы скопируете ссылку, вы получите закодированную версию.
Если мы затем обновим базу данных и изменим заголовок сообщения на わかもの
, сообщение теперь не может быть загружено, и мы получим 404. Это потому, что пуля недействительна, и она невозможно загрузить URL-адрес, соответствующий этому пуле.
Да, мне нужно, чтобы нелатинские символы были закодированы как %xx
Вам нужно urlencode
это echo urlencode( $slug )