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 e.g. '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. У Вайбера существует 2 разных варианта ссылок - для компьютера и телефона. Ссылка для ПК имеет вид: Ссылка для телефона: Необходимо просто заменить в ссылках выше номер телефона на ваш. Важно! В одном варианте есть «+», в другом - нет. Чтобы движок не вырезал ссылку на Viber при сохранении и выводил её в меню, ему нужно сообщить, что существует Такой протокол и он безопасный. Это можно сделать с помощью фильтра wp_allowed_protocols() Теперь, когда вы вставите ссылку на Viber, движок знает, что это безопасная ссылка и позволяет её сохранять и выводить (она не будет вырезана или удалена).Как создать ссылку на Viber?
viber://chat?number=+79281234567
viber://add?number=79281234567
Добавление ссылки на Viber в меню WordPress
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;
}
Список изменений
| С версии 3.0.0 | Введена. |
Где вызывается хук
$protocols = array_unique( (array) apply_filters( 'kses_allowed_protocols', $protocols ) );