wp_kses_allowed_html() WP 3.5.0

Повертає список допустимих HTML тегів та їх атрибутів для використання цього списку у функціях типу wp_kses() .

Який тип списку допустимих тегів буде повернено, визначається зазначеним контекстом.

Використовує глобальні змінні: $allowedposttags , $allowedtags , $allowedentitynames ;

Основа для:
wp_kses()
1 раз – 0.000061 сек
(дуже швидко) | 50000 разів – 1.72 сек
(швидко)

Хуки з функції

Повертає

Массив. Список тегів та його атрибутів як масиву.

Використання

wp_kses_allowed_html($context);
$context
(рядок)

Контекст якого передбачається використовувати отриманий список допустимих тегов. Може бути:

  • post– залишить теги допустимі для постів (глобальна змінна $allowedposttags )
  • strip– Виріже всі теги. Аналог функції PHP strip_tags()
  • entities– HTML сутності, як  (глобальна змінна $allowedentitynames )
  • user_description– базовий список тегів ( $allowedtags ) + тег <a rel=””> .
  • dataабо default– список базових допустимих тегів. Використовується для очищення тексту коментаря (глобальна змінна $allowedtags )

За замовчуванням: ”

Приклади

0

#1 Отримаємо список допустимих тегів за замовчуванням

Тут список виходить для користувача за участю Адміністратор. Залежно від ролі та зазначеного контексту список може змінюватися.

$data = wp_kses_allowed_html( $context );

print_r ($ data);

/* отримаємо
Array
(
	[a] => Array
		(
			[href] => 1
			[title] => 1
		)

	[abbr] => Array
		(
			[title] => 1
		)

	[acronym] => Array
		(
			[title] => 1
		)

	[b] => Array()
	[blockquote] => Array
		(
			[cite] => 1
		)

	[cite] => Array()
	[code] => Array()
	[del] => Array
		(
			[datetime] => 1
		)

	[em] => Array()
	[i] => Array()
	[q] => Array
		(
			[cite] => 1
		)

	[s] => Array()
	[strike] => Array()
	[strong] => Array()
	[pre] => Array
		(
			[class] => 1
			[name] => 1
			[code] => 1
		)

	[var] => Array()
	[h3] => Array()
	[h4] => Array()
	[img] => Array
		(
			[class] => 1
			[alt] => 1
			[src] => 1
		)

	[li] => Array()
	[ol] => Array()
	[ul] => Array()

)
*/
0

#2 Якщо вказати контекст

$data = wp_kses_allowed_html( 'strip' );
/*
Array
(
)
*/

$data = wp_kses_allowed_html( 'entities' );
/*
Array
(
	[0] => nbsp
	[1] => iexcl
	[2] => cent
	[3] => pound
	[4] => curren
	[5] => yen
	[6] => brvbar
	[7] => sect
	[8] => uml
	[9] => copy
	[10] => ordf
	[11] => laquo
	[12] => not
	[13] => shy
	[14] => reg
	[15] => macr
	[16] => deg
	[17] => plusmn
	[18] => acute
	[19] => micro
	[20] => para
	[21] => middot
	і т.д. ...
)
*/

нотатки

  • Global. Масив. $allowedposttags
  • Global. Масив. $allowedtags
  • Global. Масив. $allowedentitynames

список змін

З версії 3.5.0Введено.
З версії 5.0.1form removed as allowable HTML tag.

Код wp_kses_allowed_html() WP 6.0.2

function wp_kses_allowed_html( $context = '' ) {
	Global $allowedposttags, $allowedtags, $allowedentitynames;

	if ( is_array( $context ) ) {
		// When `$context` is an array it's actually array of allowed HTML elements and attributes.
		$html = $context;
		$context = 'explicit';

		/**
		 * Filters HTML tags які є дозволені для given context.
		 *
		 * HTML tags and attribute names are case-insensitive in HTML but must be
		 * added to the KSES allow list в нижній case. An item added to allow list
		 * В нижній або змішаному випадку не буде виявлено як прийняте KSES.
		 *
		 * @ Since 3.5.0
		 *
		 * @param array[] $html Allowed HTML tags.
		 * @param string $context Context name.
		 */
		return apply_filters( 'wp_kses_allowed_html', $html, $context );
	}

	switch ($context) {
		case 'post':
			/** Цей файл використовується в wp-includes/kses.php */
			$tags = apply_filters( 'wp_kses_allowed_html', $allowedposttags, $context );

			// 5.0.1 removed the '<form>' tag, allow it if filter is allowing it's sub-elements '<input>' or '<select>`.
			if ( ! CUSTOM_TAGS && ! isset( $tags['form'] ) && ( isset( $tags['input'] ) || isset( $tags['select'] ) ) ) {
				$tags = $allowedposttags;

				$tags['form'] = array(
					'action' => true,
					'accept' => true,
					'accept-charset' => true,
					'enctype' => true,
					'method' => true,
					'name' => true,
					'target' => true,
				);

				/** Цей файл використовується в wp-includes/kses.php */
				$tags = apply_filters( 'wp_kses_allowed_html', $tags, $context );
			}

			return $tags;

		case 'user_description':
		case 'pre_user_description':
			$tags = $allowedtags;
			$tags['a']['rel'] = true;
			/** Цей файл використовується в wp-includes/kses.php */
			return apply_filters( 'wp_kses_allowed_html', $tags, $context );

		case 'strip':
			/** Цей файл використовується в wp-includes/kses.php */
			return apply_filters( 'wp_kses_allowed_html', array(), $context );

		case 'entities':
			/** Цей файл використовується в wp-includes/kses.php */
			return apply_filters( 'wp_kses_allowed_html', $allowedentitynames, $context );

		case 'data':
		default:
			/** Цей файл використовується в wp-includes/kses.php */
			return apply_filters( 'wp_kses_allowed_html', $allowedtags, $context );
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *