我不想回答我自己的问题,但在花了一整天的时间之后,我想我找到了一个更好的方法(或者至少是一个有效的方法)。我确信这是一种更干净的方法来进行pre\\u替换,而且我还没有解决重复术语的问题,所以我将保留这个问题,希望有人能提供更好的答案。
<?php
$terms = wp_get_post_terms($post->ID, \'zip-code\', array("fields" => "all"));
foreach ($terms as $term) {
$name = $term->name;
$name = str_replace("-", " ", $name);
$name = preg_replace(\'/\\b[A-Z]{2}\\b /\', \'\', $name);
$name = preg_replace("/[0-9]/", "", $name);
echo \'<li><a href="\'.get_term_link($term->slug, \'zip-code\').\'" title="">\'.$name.\'</a></li>\';
}
?>