Intereting Posts
Как фильтровать ответы bbPress (контент)? Получение выделенного (выделенного) html из Visual Editor на странице «Редактировать страницу»? Мультисайты с разными доменами Проверьте, не вставлена ​​ли страница Как создать признак изображения из видео, внедренного в метабокс Передача значений из виджета в функцию внутри плагина Проблема с панелью администратора WordPress Убедитесь, что я полностью удалил взломанный WordPress? Изображения прекратили загрузку после добавления SSl Ошибка PHP при попытке загрузить файлы .mp3 через медиа-библиотеку Перемещено на новый сервер, на всех страницах работает EXCEPT домашняя страница (страница не найдена) Делайте только пользовательский размер изображения, если он загружен через Thickbox и прикреплен к определенной странице Настройка robots.txt с плагином Yoast's Seo Сообщение отправляется с использованием короткого кода и init Можно ли использовать один пул для множественных таксономий?

Является ли функция форматирования sanitize_title_with_dys слишком либеральной (с точки зрения принятых символов)?

sanitize_title_with_dashes (см. код ниже для справки) – это функция, которую WordPress использует для форматирования «хороших» URL-адресов. Однако, вопреки заголовку комментария функции, он позволяет гораздо больше, чем буквенно-цифровые символы, подчеркивание (_) и тире (-). Он также допускает знаки типа ° и т. Д.

Как я могу действительно разрешить только буквенно-цифровые символы и тире?

 /** * Sanitizes title, replacing whitespace with dashes. * * Limits the output to alphanumeric characters, underscore (_) and dash (-). * Whitespace becomes a dash. * * @since 1.2.0 * * @param string $title The title to be sanitized. * @return string The sanitized title. */ function sanitize_title_with_dashes($title) { $title = strip_tags($title); // Preserve escaped octets. $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title); // Remove percent signs that are not part of an octet. $title = str_replace('%', '', $title); // Restore octets. $title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title); $title = remove_accents($title); if (seems_utf8($title)) { if (function_exists('mb_strtolower')) { $title = mb_strtolower($title, 'UTF-8'); } $title = utf8_uri_encode($title, 200); } $title = strtolower($title); $title = preg_replace('/&.+?;/', '', $title); // kill entities $title = str_replace('.', '-', $title); $title = preg_replace('/[^%a-z0-9 _-]/', '', $title); $title = preg_replace('/\s+/', '-', $title); $title = preg_replace('|-+|', '-', $title); $title = trim($title, '-'); return $title; } 

Рассмотрим эту функцию как грубый заполнитель. У него больше недостатков, чем вы могли себе представить … 🙂
Существует множество плагинов для улучшения преобразования для разных языков и потребностей. Вы можете посмотреть мой плагин Germanix, чтобы узнать, как это можно сделать.