Ваша проблема вызвана тем, что ваш символ "-" является чем-то еще, что выглядит так же .
Шаг 1:
Убедитесь, что все , используятот же набор символов , от вашего MySQL к вашему PHP к вашему вводимому тексту.
$title1 = iconv(mb_detect_encoding(get_the_title(), mb_detect_order(), true), "UTF-8", get_the_title());
( ссылка )
Шаг 2:
Убедитесь, что вы преобразуете необработанную строку, а не кодированный HTML-вывод
$title2 = html_entity_decode($title1, ENT_NOQUOTES | ENT_HTML5, "UTF-8");
Шаг 3:
Запустите функцию str_replace()
, как изначально пытались.Если существует ряд возможных символов «тире», вы можете создать массив:
$dashes = ['–','–','—','-'];
$title3 = str_replace($dashes,"-",$title2);
( ссылка )