wordpress - 将数据返回到页面的用户输入处理程序
问题描述
我是 Wordpress 开发的新手,我发现对于似乎应该很常见的问题的笨拙解决方案。请帮助我找到一个更清洁的解决方案,减少错误行为的可能性。
Objective:在 Wordpress 页面上从用户那里获取日期范围,在 API 请求中使用日期范围,在 Wordpress 页面上显示来自 API 响应的数据。
当前解决方案:开始和结束日期通过 POST 方法的 Wordpress 页面中的 HTML 表单提交。POST 请求不会路由到任何其他页面。除了start
和end
参数之外,表单还有一个隐藏action
参数,其中包含我指定的自定义值:<input type="hidden" name="action" value="custom-value">
. 我写了一个使用init
钩子的插件。挂钩函数检查$_REQUEST['action']
它是否与表单中的自定义值匹配,如果匹配,它会使用表单中的start
和end
日期向 API (recreation.gov) 发出 GET 请求。到目前为止,解决方案对我来说似乎很可靠。这里是教程用完的地方,我不得不......有创造力。
来自 API 请求的数据被处理并格式化为 HTML,并且此字符串存储为set_transient
具有 3 秒生命周期的瞬态使用。在提交表单的原始页面中,有一个简单地返回瞬态的短代码。现在,我在用户指定日期范围的同一页面上获得了来自 API 的数据。
此解决方案有效,但如果多个用户同时使用该页面并查看或覆盖彼此的结果,则似乎很有可能出现问题。必须有更好的方法从执行 API 请求的插件中将数据返回到 Wordpress 页面。
由于这个问题是关于方法论的,而不是语法,所以我没有包含任何示例代码,但如果这会有所帮助,我可以。提前感谢您的建议。
解决方案
我最终找到的解决方案是放弃插件并从简码中做所有事情。简码可以访问$_REQUEST['action']
,我不知道,所以我能够获取用户输入并在简码中进行 API 调用,然后格式化结果并返回它们。无需处理插件和钩子,因为短代码是在页面加载时执行的。
推荐阅读
- php - php结合变量和数组值
- python - Pandas is.in 数据框子集设置很慢,但仅适用于百万 + 1 行
- javascript - 如何更改默认铬音乐播放器的颜色?
- python - 熊猫:无法导入 rolling_mean
- firebase - 在颤振中使用谷歌身份验证并显示用户名和图像
- python - 使用 python 请求获取 CSRF 令牌
- r - 如何构建按 ID 分组的多个 3D 椭圆?
- html - 存储在“/images”目录中的静态内容不被提供,因为 URL 变得相对于“/css”目录
- c# - .NET Core 中的用户配置设置
- bokeh - 在 JupyterLab 的单元格中未呈现 Holoviews 图