fix(widgets): preserve badge HTML in icon card title/desc like reference theme
wp_kses_post() strips the custom <badge> element, so icon card title/desc lost admin-authored markup (e.g. <badge class="ml6 jb-blue">GO</badge>) both at save time and render time, diverging from the reference theme which stores and echoes these fields raw. - add shared inline whitelist (aksrt_icon_card_kses_tags/aksrt_icon_card_kses) and route both card renderers plus the media-brand fallback through it - drop the dead unused $allow array in aksrt_icon_cover_card - add 'rich_html' sanitize type (FieldSchema + SchemaProvider) and mark icon card title/desc fields in widget schemas, page display schema and the page config meta box save path - align header slider card module with reference show_widget_bg branches (aksrt-panel/flex1 vs padding-10 wrapper/relative-h) - update widget contract tests to pin the whitelist behavior
This commit is contained in:
@@ -821,6 +821,13 @@ class SchemaProvider {
|
||||
return array_values(array_unique($ids));
|
||||
case 'html':
|
||||
return wp_kses_post((string) $value);
|
||||
case 'rich_html':
|
||||
// Inline whitelist for card title/desc: `badge` is a custom
|
||||
// element that wp_kses_post() would strip, but legacy (Zibll)
|
||||
// renders such markup verbatim.
|
||||
return function_exists('aksrt_icon_card_kses')
|
||||
? aksrt_icon_card_kses((string) $value)
|
||||
: wp_kses_post((string) $value);
|
||||
case 'textarea':
|
||||
return sanitize_textarea_field((string) $value);
|
||||
case 'code':
|
||||
|
||||
Reference in New Issue
Block a user