如何在本地主机上处理WordPress

时间:2015-05-04 作者:user1778856

我正在笔记本电脑上使用localhost运行一个WP站点,我经常需要我的同事看到它。如果他们输入我家的IP,他们就可以访问该网站,但WP中所有使用site\\u URL()或类似URL的URL都会呼出“localhost”,这当然对外人不起作用。

所以我改变了WP,将我的IP用于网站URL,解决了这个问题,但创建了另一个。如果我将笔记本电脑带离家,并尝试查看我的网站,现在所有链接都显示为http://home-ip/ 这是不可用的。此外,我无法进入wp admin将站点URL更改回localhost,因为我被重定向到http://home-ip/site/wp-admin/.

有没有一种方法可以解决这个问题,而不必每次我想让别人从外面访问URL,或者每次我离开家时都不断更改URL。

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

您可以使用wp-config.php 要根据访问网站的位置更改网站url,请使用$_SERVER[\'REMOTE_ADDR\']. 我的是这样的:

if ($_SERVER[\'REMOTE_ADDR\'] == \'127.0.0.1\' || $_SERVER[\'REMOTE_ADDR\'] == \'::1\') { 
    // accesing site from my local server
    define(\'WP_SITEURL\', \'http://localhost/mysite/\');
    define(\'WP_HOME\', \'http://localhost/mysite\');
} else if (strpos($_SERVER[\'REMOTE_ADDR\'],\'192.168.0.\') !== false) {
    // accesing site from another machine in my home network, 
    // all their (internal) network addresses begin with this number;
    // the next line provides the server\'s own internal network address 
    define(\'WP_SITEURL\', \'http://192.168.0.192/mysite/\');
    define(\'WP_HOME\', \'http://192.168.0.192/mysite\');
} else { //accesing site from outside home
    define(\'WP_SITEURL\', \'http://89.*.*.*/mysite/\'); //replace by your external home IP
    define(\'WP_HOME\', \'http://89.*.*.*/mysite\');
}
//error_log("Siteurl is ".WP_SITEURL);
此技术还可以大大简化将站点上载到生产服务器的过程,或使站点的本地版本和生产版本保持同步。(虽然,很明显wp-config.php 生产服务器上不应包含此代码。)

注意:由于某些原因,我无法使用家庭网络中其他机器的外部家庭IP;如果不是这样,您可以删除else if, 只留下else 部分

SO网友:Tim Malone

虽然公认的答案看起来不错,但在我的情况下,仅仅更改WP\\u SITEURL/WP\\u HOME是行不通的,因为页面上的文本内容中总是有大量绝对链接(即通过所见即所得编辑器添加的图像或链接)。换句话说,如果我想让站点正常工作,我几乎可以使用相同的域。

因此,如果它能帮助其他遇到这种情况的人,我的解决方案是Wordpress之外的解决方案——尽管它可能在所有情况下都没有帮助。

我使用一个域,例如我。我的公司。com,然后在我的HOSTS文件中,我将其解析为127.0.0.1(换句话说,localhost)。对于需要查看该站点的任何同事,我会使用本地IP将我的域添加到他们的主机文件中。

当网络之外的客户需要查看站点时,此解决方案也会得到扩展;我们只是确保我。我的公司。com解析为我们的公共IP(通常您的web主机可以提供帮助,如果您的Internet连接也有一个静态IP,它肯定会有所帮助),然后在我们的路由器上,将web请求路由到我的内部IP,有效地设置一个简单的web托管解决方案(当然,仅用于开发,不用于生产!)

希望这对别人有帮助。HOSTS文件可以在任何平台上编辑,显然Windows、Mac和Linux的说明不同,因此如果需要,最好在Google上搜索帮助,但在Windows中,该文件是C:\\Windows\\System32\\drivers\\etc\\HOSTS-在记事本中打开它,并按照文件中的格式进行必要的更改(您需要以管理员身份运行才能保存文件)。

SO网友:katiedev

在WordPress 5.5.1中,您可以使用wp_get_environment_type 功能。设置wp_get_environment_type 在wp配置中。

结束

相关推荐

Rewriting WordPress URLs

我有一个插件,它通过一个短代码通过GET请求获取输入。快捷码放在带有地址/搜索的页面上,用于执行此特定搜索的查询是/搜索/?VenuName=。这很好用。但是,我需要重写它,以便当用户转到/地点/时,它加载上述搜索。This gist 包含我的原始代码(失败),以及Pippin关于我应该在哪里的建议(也失败)。我已经尝试了我能想到的一切,它总是导致404错误,或者重定向到主页(这毫无意义)。我还尝试了通过Rewrite plugin, 结果是一样的。如果您能提供任何帮助,我们将不胜感激。不幸的是,我在这个