“str_place”和“strtr”在插件中不起作用

时间:2015-09-14 作者:Justin

我的目标很简单:

用这样的字符串-->\'https://www.secondarysite.com/subpage\'

把它变成这个-->\'https://www.primarysite.com/secondarysite/subpage\'

听起来很简单对吧?

在独立的PHP文件中(即不使用WordPress),此代码按预期工作:

function changeThisURL() {
  $current_url = \'https://www.secondarysite.com/subpage\';
  $new_url = str_replace("secondarysite.com", "primarysite.com/secondarysite", $current_url);
  echo $new_url;
}
它正确地回显更改后的URL。

现在,如果我在WordPress插件中删除相同的函数并调用它,它会在更改之前回显$current\\u url的值。

我也尝试过使用“strtr”:

function changeThisURL() {
  $current_url = \'https://www.secondarysite.com/subpage\';
  $trans = array(\'secondarysite.com\' => \'primarysite.com/secondarysite\');
  $new_url = strtr($current_url, $trans);
  echo $new_url;
}
结果是一样的:它在一个独立的PHP文件中工作得很好,但在WordPress中它失败了,并给出了$current\\u url的起始值。

其他信息:*这是一个多站点。*我发现,如果我使用的字符串不包含斜杠或句点,那么一切都很好。

1 个回复
最合适的回答,由SO网友:Justin 整理而成

Mark是正确的,是其他代码导致了问题。我追踪到了我在测试期间使用的一个插件:插入PHP;https://wordpress.org/plugins/insert-php/

插件的代码中有一行代码正在替换前斜杠。

无论如何,我通过一个短代码运行了昨天尝试的相同代码,一切都按预期运行。

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register