我正在编写一个插件,它调用另一个插件的ajax的输出,设置在wp_ajax_
我会直接调用这些函数,但插件中的限制使其成为非选项。
要明确的是,发生了这样的事情:
用户选择一个动作,然后点击apply,我的插件函数在admin ajax中调用。php(通过wp_ajax_
钩子)插件函数创建一个非编码url,如下所示:$url = wp_nonce_url( admin_url( \'admin-ajax.php?action=plugin_action&post_id=\' . $post_id), \'plugin_action\' );
然后我用wp_remote_get
输出为0
.
现在奇怪的是:不是用wp_remote_get
我回显了它,然后复制粘贴到我的浏览器中,它给了我正确的输出。(so it\'s not a matter of a missing die()
!)
我还尝试将自己的函数放入编辑中。php(使用load-
hook)而不是admin ajax。php,但结果是相同的(0)。现在法典显示the load-
hook is executed before wp_ajax
, 因此,这是预期的行为(操作尚未添加),但即使在优先级为99的wp\\U ajax中,我也能得到0
.
有什么想法吗?当我直接从admin ajax调用该操作时,是否还没有添加该操作。php?如果是的话,有没有更好的地方让我自己采取行动?(在wp\\u ajax之后激发的)
SO网友:Otto
您的服务器是否知道自己的名称和/或是否允许环回连接?
比如,如果你只在主博客页面上进行远程访问,那么这是否有效?
如果由于DNS无法解析,服务器不知道自己的名称,或者在服务器级别禁用了环回连接(这些是一些廉价主机上常见的“安全”措施),那么连接回自己将不起作用。
编辑:好吧,如果不是这样的话,那么你有没有尝试连接到wp_ajax_nopriv_
钩由于您没有使用wp\\u remote\\u get传递cookie或任何形式的凭据,因此您将作为非特权用户进行连接,这意味着它将使用nopriv钩子而不是普通的特权钩子。