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) {
...