kses_allowed_protocolsхук-фильтрWP 3.0.0

Позволяет добавить или удалить протоколы, которые можно использовать в 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'
);

Примеры

0

#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 Введена.

Где вызывается хук

wp_allowed_protocols()
kses_allowed_protocols
wp-includes/functions.php 7204
$protocols = array_unique( (array) apply_filters( 'kses_allowed_protocols', $protocols ) );

Где используется хук в WordPress

Использование не найдено.