kses_allowed_protocols
Дозволяє додати або видалити протоколи, які можна використовувати в URL-адресі.
Якщо протокол не дозволений, при очищенні контенту (HTML коду) URL буде видалено. Наприклад, якщо ми додамо посилання виду viber://chat?number=+79281234567
в атрибут href
у меню навігації, він буде видалено.
Використання
add_filter( 'kses_allowed_protocols', 'wp_kama_kses_allowed_protocols_filter'); /** * Function for `kses_allowed_protocols` filter-hook. * * @param string[] $protocols Array of allowed protocols eg 'http', 'ftp', 'tel', and more. * * @return string[] */ function wp_kama_kses_allowed_protocols_filter( $protocols ){ // Filter... return $protocols; }
-
$protocols
(string[]) Масив дозволених протоколів, наприклад,
http
,ftp
,tel
і т.д. Повний список протоколів дивіться в описі wp_allowed_protocols() . Для ВП 5.8 він такий:$protocols = array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'irc6', 'ircs', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'sms', 'svn', 'tel', 'fax', 'xmpp', 'webcal', 'urn' );
Приклади
#1 Як додати посилання на Viber у меню (wp_nav_menu)
Якщо спробувати вставити посилання на viber в меню навігації WordPress, то при збереженні воно буде вирізане, оскільки двигун не знає про протокол viber.
Як створити посилання на Viber?
У Вайбера існує 2 різні варіанти посилань – для комп’ютера та телефону.
Посилання для ПК має вигляд:
viber://chat?number=+79281234567
Посилання для телефону:
viber://add?number=79281234567
Необхідно просто замінити на посиланнях вище номер телефону на ваш.
Важливо! В одному варіанті є «+», в іншому – ні.
Додавання посилання на Viber у меню WordPress
Щоб двигун не вирізав посилання на Viber при збереженні та виводив його в меню, йому потрібно повідомити, що існує такий протокол і він безпечний. Це можна зробити за допомогою фільтра wp_allowed_protocols()
add_filter( 'kses_allowed_protocols', 'add_viber_to_allowed_protocols'); /** * Додає протокол viber до списку дозволених. * * @param string[] $protocols Масив дозволених протоколів, наприклад, 'http', 'ftp', 'tel' і т.д. * * @return string[] */ function add_viber_to_allowed_protocols( $protocols ) { $protocols[] = 'viber'; return $protocols; }
Тепер, коли ви вставите посилання на Viber, двигун знає, що це безпечне посилання і дозволяє його зберігати та виводити (вона не буде вирізана чи видалена).
список змін
З версії 3.0.0 | Введено. |
Де викликається хук
$protocols = array_unique( (array) apply_filters( 'kses_allowed_protocols', $protocols ) );
Де використовується хук у WordPress
Використання не знайдено.