Прежде всего давайте разберёмся, что же такое внутренний идентификатор в WordPress. Это могут быть:
- значения параметров
action
при отправке AJAX-запросов, - идентификаторы страниц настроек в WordPress,
- названия типов записей и таксономий,
- и так далее…
Функция подготавливает любую переданную в неё строку для использования в качестве этих ключей, вот что она делает по порядку:
- Сначала переводит ключ в нижний регистр,
- Затем оставляет в нём только данный набор символов
a-z0-9_-
, то есть буквы латинского алфавита, цифры, дефис и знак нижнего подчёркивания, - Применяет фильтр sanitize_key.
Для чего нужна очистка данных в WordPress я подробно рассказываю в видеоуроке.
sanitize_key( $key )
Параметры
- $key
- (строка) Строковое значение ключа, которое нужно очистить.
Пример
$key = 'My-custom-post-type#2'; echo sanitize_key( $key ); // my-custom-post-type2
Фильтр sanitize_key
Перед тем, как возвращать очищенное значение, к нему применяется фильтр-хук sanitize_key
, в который передаётся сразу и очищенное, и первоначальное значение строки, что позволяет написать свой собственный алгоритм очистки, например если по какой-то причине вас не устраивают дефисы, то их можно удалить тоже:
add_filter( 'sanitize_key', 'true_remove_dashes_from_keys', 25, 2 ); function true_remove_dashes_from_keys( $key, $raw_key ) { return preg_replace( '/-/s', '', $key ); }
На случай, если не знаете, куда вставлять код.
Источник: Блог Миши Рудрастых