首页 > 解决方案 > 将数据返回到页面的用户输入处理程序

问题描述

我是 Wordpress 开发的新手,我发现对于似乎应该很常见的问题的笨拙解决方案。请帮助我找到一个更清洁的解决方案,减少错误行为的可能性。

Objective:在 Wordpress 页面上从用户那里获取日期范围,在 API 请求中使用日期范围,在 Wordpress 页面上显示来自 API 响应的数据。

当前解决方案:开始和结束日期通过 POST 方法的 Wordpress 页面中的 HTML 表单提交。POST 请求不会路由到任何其他页面。除了startend参数之外,表单还有一个隐藏action参数,其中包含我指定的自定义值:<input type="hidden" name="action" value="custom-value">. 我写了一个使用init钩子的插件。挂钩函数检查$_REQUEST['action']它是否与表单中的自定义值匹配,如果匹配,它会使用表单中的startend日期向 API (recreation.gov) 发出 GET 请求。到目前为止,解决方案对我来说似乎很可靠。这里是教程用完的地方,我不得不......有创造力。
来自 API 请求的数据被处理并格式化为 HTML,并且此字符串存储为set_transient具有 3 秒生命周期的瞬态使用。在提交表单的原始页面中,有一个简单地返回瞬态的短代码。现在,我在用户指定日期范围的同一页面上获得了来自 API 的数据。

此解决方案有效,但如果多个用户同时使用该页面并查看或覆盖彼此的结果,则似乎很有可能出现问题。必须有更好的方法从执行 API 请求的插件中将数据返回到 Wordpress 页面。

由于这个问题是关于方法论的,而不是语法,所以我没有包含任何示例代码,但如果这会有所帮助,我可以。提前感谢您的建议。

标签: wordpress

解决方案


我最终找到的解决方案是放弃插件并从简码中做所有事情。简码可以访问$_REQUEST['action'],我不知道,所以我能够获取用户输入并在简码中进行 API 调用,然后格式化结果并返回它们。无需处理插件和钩子,因为短代码是在页面加载时执行的。


推荐阅读