главная/WordPress: получаем допустимые для поста html тэги и атрибуты
wp_kses разрешенные атрибуты и тэги

WordPress: получаем допустимые для поста html тэги и атрибуты

В своей практике я довольно часто использую такие функции как wp_kses( $html, ‘post’ ) и wp_kses_post (обвертка для первой) для очистки данных перед выводом на фронт. Тем самым очищая переданный html от всех тэгов и атрибутов, которые не допустимы в посте.

Но иногда нужно добавить пару атрибутов в белый список перед санитизацией, при этом оставим старые допустимые значения. Которые в данном случае нам придется передавать в массиве во второй аргумент функции wp_kses( $html, array( ‘a’ => array() ) )

Что-бы не заниматься такой ерундой, мы просто можем получить весь белый список в виде массива и уже после этого, добавить в него наши тэги и атрибуты.

Получаем белый список в виде массива

Все что нужно сделать, это вызвать глобальную переменную $allowedposttags.

global $allowedposttags;

На выходе получим большой массив как в примере ниже.

array(83) {
  ["address"]=>
  array(11) {
    ["aria-describedby"]=>
    bool(true)
    ["aria-details"]=>
    bool(true)
    ["aria-label"]=>
    bool(true)
    ["aria-labelledby"]=>
    bool(true)
    ["aria-hidden"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
    ["data-*"]=>
    bool(true)
  }
  ["a"]=>
  array(17) {
...