引用自定义PHP文件的动态URL

时间:2017-12-21 作者:Joachim Prinsloo

初学者Wordpress开发者在这里。。。我目前正在为我的一个设备开发一个Wordpress网站。我的想法是能够连接到充当web服务器的设备。我应该能够从托管该站点的本地设备(此处的Raspberry Pi称为服务器)以及与服务器连接在同一网络上的任何机器/设备(此处的移动电话/笔记本电脑等称为客户端)访问该站点。

直接在服务器上连接到站点可以很好地连接http://localhost/mysite. 所有链接和操作都按预期工作。

从客户端连接到站点部分有效。我可以连接和浏览wordpress链接,如页面等,但以下过程不起作用:

The Process

我的插件创建了可以添加到任何页面的短代码。短代码的所有函数基本上都使用以下代码调用php文件:

http://localhost/mysite/wp-content/plugins/my-plugin/api/mydatasourcephpfile.php
然后使用从上述请求获得的值在页面上创建html表单。表单包含一个提交按钮,单击后,表单会将其值发布到:

http://localhost/mysite/wp-content/plugins/my-plugin/api/mypostphpfile.php
然后,MyPostHPFile接受发布到它的表单值,将其写入数据库,并返回到原始页面,添加url参数“?success=true”。这是使用MyPostHPFile中的以下代码完成的。写入所有数据后,php文件位于末尾:

$success="true";
header(\'Location: http://localhost/mysite/myoriginalformpage/?success=\', $success);
我确切地知道问题是什么。问题是我的URL中的localhost,可以说是“硬编码”的,我可以发布/返回到它。在服务器上执行post时,它将post到localhost上可用的localhost php文件(在服务器上下文中)。当从客户端发布时,该发布不起作用,因为它发布到客户端浏览器在客户端计算机而不是服务器上查找的localhost php文件。

这似乎是一个URL问题。我不太熟悉。htaccess文件等,我甚至不知道这是否能解决我的问题。我需要能够张贴到php文件,其中的URL是相对于服务器的,无论我是从哪个设备浏览网站。我对Wordpress的开发非常陌生,互联网上的搜索没有什么意义,因为我甚至不知道如何在谷歌搜索栏中描述这个问题(正如你在问题描述中所看到的:)。我想防止硬编码ip地址,因为这些地址可能会更改,主机名也可能会更改,因为我已经读到这些并不总是有效(至少在树莓pi上)。

简而言之,有没有什么方法可以让我找到wordpress运行的URL,让所有客户端都能完成这个过程。php文件的URL应该相对于服务器。

在此方面的任何帮助或为我指明正确的方向都将不胜感激。

1 个回复
SO网友:Coltvant

我不能肯定我理解这个问题,但如果你只是想获取网站URL,你可以使用get_site_url() WP功能。所以,像这样:

$siteURL = get_site_url();
header("=Location: $siteURL" . "/myoriginalformpage/?success=", $success);
您可以更改get_site_url() 指定路径并显示“https”或“http”。

但是如果您只需要当前站点的url,请使用get_site_url();

结束