如何将WordPress与任何“站点url”(设置中的url)一起使用进行开发?

时间:2020-01-26 作者:cooldude101

对于开发,我希望能够将我的wordpress站点与localhost一起使用,并与各种IP一起使用,甚至可能与一些一次性域名一起使用。

现在wordpress不允许,您必须选择1个“站点url”,并在每次决定使用不同的端口或不同的测试服务器IP时更改它。

我知道我可以更改本地计算机上的主机文件,但如果我临时托管一个站点以供客户端测试,则无法更改主机文件。我不想让他们更改他们的主机文件。

如何修改wordpress使其工作?有没有这样的插件?如果没有,我如何制作自己的插件或破解wordpress,使其满足我的需要?我是一名开发人员,但我对wordpress、php和apache不太了解。

它能像制作一个覆盖全局变量的插件那样简单吗site_url 还有什么不可以?

示例如果我访问,wp站点应加载而不重定向:

http://localhost (假设我正在监听端口80)

http://localhost:3000 (假设我正在监听端口3000)

http://wordpress-test (假设我更改了主机文件)

http://123.123.123.123 (假设站点正在端口80的服务器上侦听)

3 个回复
SO网友:Tim Elsass

不幸的是,除了更新选项之外,还有更多选项。我建议你仔细阅读https://wordpress.org/support/article/changing-the-site-url/ 首先了解所涉及的内容。至于插件解决方案,已经存在很多,这将是一条比自己滚动更安全的路线。Better Search and Replace 是很受欢迎的。

由于您将要对客户端预览、本地开发和生产进行url更改,因此我假设您已经有了wp cli,或者可以轻松地将其安装并运行。它已经具有内置的搜索和替换功能,您可以执行以下操作:

wp search-replace http://local.test https://throwaway-domain.com/subdirectory --skip-columns=guid --dry-run
发件人wp-cli documentation for search-replace, 此脚本也很有用:

# Bash script: Search/replace production to development url (multisite compatible)
#!/bin/bash
if $(wp --url=http://example.com core is-installed --network); then
    wp search-replace --url=http://example.com \'http://example.com\' \'http://example.test\' --recurse-objects --network --skip-columns=guid --skip-tables=wp_users
else
    wp search-replace \'http://example.com\' \'http://example.test\' --recurse-objects --skip-columns=guid --skip-tables=wp_users
fi
Note: <你可能已经注意到国旗了--skip-columns=guid 在这两个示例中,将在下面的第一个链接中进行解释Important GUID Note. 类似地Better Search and Replace 提到的插件有一个复选框,可以跳过替换guid

正如您在另一条评论中提到的,您可以查看以下内容StackOverflow question.

SO网友:Vitauts Stočka

您可以尝试使用这些挂钩过滤器

add_filter(\'home_url\', \'my_url\', 10, 2);
add_filter(\'site_url\', \'my_url\', 10, 2);

function my_url($url, $path) {
   return \'http://your-dev-hostname-or-ip-here/\' . $path;
}
但请记住,原始(真实)网站url仍将在内容的许多地方使用。要修复此问题,可以使用附加挂钩the_content 并在那里进行字符串替换。

SO网友:Admiral Noisy Bottom

Wordpress基于PHP,需要MySQL或MariaDB等数据库服务器。

我建议使用LAMP、WAMP或类似的开发环境。该软件是免费的,将安装一个开发环境,包括Apache、PHP、MySQL,有时还包括Phpmyadmin。

您将获得Apache、PHP、MySQL和一个用于设置本地存储在PC上的测试域的控制面板。

你真的不需要成为任何安装包的专家,因为你将有一个用于设置数据库(Wordpress需要)和创建测试域的控制面板。

我假设您使用的是Windows操作系统,在这种情况下,您希望这是一个简单的过程。这个AMP 样式包可用于Windows和Linux。

建立一个良好的测试环境会给你带来良好的体验,这是一个很好的学习方式,因为如果你犯了错误,除了你自己,你不会伤害任何人。

使用AMP发行版中包含的所有软件包,网上有数千页帮助。

我希望这对你有帮助。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。