AJAX回调函数可以访问在初始页面加载期间定义的PHP变量吗?

时间:2020-02-10 作者:cag8f

我已经编写了一个自定义插件。加载“我的网站”上的a页时:

我的插件的主PHP准备数据发送到页面。在执行此文件的过程中,会定义一个PHP变量并为其赋值($myvar).我想让PHP回调函数知道$myvar. 这可能吗?如果是这样,是明智的,还是可能不标准和/或有风险?

一种迂回的方法是将$myvar发送到浏览器,以便通过JavaScript(使用wp_localize_script()), 然后在AJAX调用期间将相同的值发送回服务器。但这似乎效率低下,尤其是在这种情况下,浏览器不需要知道$myvar.

我应该说,我有其他的方法来实现我想要的,这似乎是安全可行的。简而言之,我可以简单地设置$myvar 在回调函数中,或者甚至可能通过JavaScript确定其值。因此,除非我在这篇文章中找到一个非常有利的解决方案,否则我很可能会选择其中一种替代方法。但我只是想先问问这里,以防我忽视了一个可行的方法(并启发自己)。

谢谢

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

根据本文中的评论,我认为使用WordPress transient 存储的值$myvar 对我来说是最好的解决方案。一个原因是,在我的例子中,浏览器不需要知道变量的值。

以下是在您的特定用例中做出明智决策的更多信息:

  • This separate Stack Exchange question 有一个答案,它提供了有关在WordPress中保存数据的所有方法的更多信息,包括瞬态的使用
  • This link 有关特定选项的详细信息this link 有更多关于他们的信息

相关推荐

菜单链接URL与PHP GET方法

社区大家好,我想知道是否可以使用PHP Get方法而不是Wordpress中使用的常规方法生成菜单链接?e、 g:www.mybeautiful.com。com/类别/运动?运动=足球而不是www.mybeautifulwebsite。com/类别/运动/足球Explanation:我的体育新闻页面列出了每项运动的1条新闻,如下所示:我的关于某个体育新闻的页面列出了它的所有新闻,如下所示:正如你所看到的,这是完全相同的一页。所以我想重用我的“体育新闻”页面来显示每项运动的新闻For information