如何在Media Uploader AJAX请求中发送自定义变量?

时间:2016-09-19 作者:Radley Sustaire

我有一个自定义的“库存照片”帖子类型is_stock_photo = 1.我还想在媒体上传框中排除这些结果,but only on the media screen. 如果您使用的是stock photos自定义帖子类型,我希望正好相反-只有stock photos才会显示在媒体上传器中。

所以我有逻辑来隐藏或显示它们pre_get_posts. 但我无法确定我是在“库存照片帖子类型”屏幕上,还是在编辑页面。媒体上传程序是通过AJAX驱动的,因此我无法检查URL,请求变量也无法帮助识别页面。

我想使用一些javascript在媒体上传程序触发的ajax事件中添加自定义$\\u GET变量。

以下是默认ajax调用所包含的内容(加上来自ACF的一个字段,我想要他们基本上添加的内容):

http://example.org/wp-admin/admin-ajax.php
---
action:query-attachments
post_id:775
query[post_mime_type]:image
query[orderby]:date
query[order]:DESC
query[posts_per_page]:40
query[_acfuploader]:field_57df470db0c1c
query[paged]:1
我想自己注射,例如:

query[show_stock_photos]: (1 or 0)
我做了一些研究,但都是JS的。WordPress文档中几乎没有关于媒体上传器的任何内容。我只知道答案可能在于wp.media 对象,但我找不到更多线索。

1 个回复
SO网友:Hasan Akhtar

我的第一反应是在ACF代码中找到\\u acfuploader,看看他们是怎么做的。不幸的是,最新版本似乎没有出现acfuploader。

我想到的第二件事是wp\\u get\\u referer函数。您可以使用它来查看ajax请求的来源。然后可以从查询字符串中获取帖子ID,获取帖子类型,并根据获得的值做出决策。

然而,HTTP引用程序很容易被欺骗,因此您必须考虑在代码中使用它的安全影响。然而,在这种情况下,用户不会从欺骗HTTP Referer中获得太多好处,因此我认为这是一个可行的解决方案。

相关推荐

尝试在WordPress中实现AJAX注释,遇到WP错误

我试图在WordPress中为我的评论实现Ajax,使用this tutorial. 但我在将教程中的代码集成到自己的预构建主题时遇到了问题。问题是,我要么得到一个WP错误“检测到重复注释;看来你已经说过了!”或标准500错误。以下是我得到的:下面是我对ajax的评论。js文件如下所示: * Let\'s begin with validation functions */ jQuery.extend(jQuery.fn, { /* * check i