为什么WordPress转换我的帖子标题与普通字符串不同?

时间:2019-08-01 16:46:46

标签: php wordpress string replace

在WordPress中,标题为My Town - Charleston, SC

在PHP 7.2中,我想拿这个标题并将其变成charleston,-sc

为此,我正在使用str_replacestrtolowertrim

$title = trim(str_replace('my town -', '', strtolower(get_the_title())));
$locationTag = str_replace(' ', '-', $title);

如果我将get_the_title替换为字符串本身,则在常规PHP中有效,但是当我在WordPress模板页面上使用代码时,不会将my town -替换为空白。取而代之的是,它只用破折号代替空格,并使所有内容变为小写。

为什么会这样? WordPress会在这里执行一些奇怪的操作顺序来优化内容吗?

1 个答案:

答案 0 :(得分:2)

这是因为get_the_title函数出于某种原因将'-'转换为'–'。我不确定您是否可以清楚地看到它,但第二个破折号稍宽一些。

我在本地环境中重新创建了问题,并发现了这种奇怪的行为。

var_dump( get_the_title() ); echo '<br>';
var_dump( $post->post_title ); echo '<br>';
var_dump( "My Town - Charleston, SC" ); echo '<br>';

您可以在此屏幕截图中清楚地看到它-

Different dashes-