Эта функция заменяет упомянутые вами атрибуты HTML, но вам, возможно, придется настроить его для HTML вне предоставленных вами примеров:
<?php
function convert_hrefs_and_ids($text) {
$replace = static function($str) {
$prefix = str_replace('_', '', $str[2]);
$attribute = str_replace('_', '-', $str[3]);
return $str[1] . '="' . $prefix . $attribute . '"';
};
$text = preg_replace_callback('/(a.+href)="(#_)([a-z0-9_]+)"/Ui', $replace, $text);
$text = preg_replace_callback('/(div.+id)="(_)([a-z0-9_]+)"/Ui', $replace, $text);
return $text;
}
Если вы хотите использовать его с Wordpress, вы можете взятьпосмотрите на Wordpress API для фильтров содержимого и используйте его так:
<?php
add_filter('the_content', 'convert_hrefs_and_ids');