Can I use a Shortcode output as an HTML attribute value?
I am not good at Regex but do_shortcode will basically will not parse any shortcode in the attributes, this might help you out: add_filter(‘the_content’, function($c){ $pattern = ‘/<span\s*(.*?)data-value=[“\’]?\[(.*?)\][“\’]?\s*(.*?)>\s*(.*?)\s*<\/span>/si’; $c = preg_replace_callback($pattern, function($c){ return isset( $c[2] ) ? str_replace( $c[2], do_shortcode(“[{$c[2]}]”), $c[0] ) : array_pop($c); }, $c); return $c; });