当前位置: 首页 > 知识库问答 >
问题:

如何在前端的WP插件中进行AJAX调用

上官彬
2023-03-14

我正在开发WP插件,当用户输入ID时,将获得针对该ID的帖子。它在管理方面工作正常。我已经按照这个例子通过AJAX调用获取数据,但现在我试图在前端这样做,任何人都可以输入ID并获得结果。我已经删除了我用来在管理端创建页面的功能。现在我有3个函数命名:

  1. 你好,word()
  2. ajax\u脚本()
  3. ajax_处理器()

我试着用下面的钩子来注册,但它不起作用

  • 添加操作('admin_footer','ajax_script')
  • 添加_操作(“wp_ajax_my_操作”,“ajax_脚本”)
  • 添加操作(“wp\u ajax\u nopriv\u my\u action”、“ajax\u script”)

hello_word()函数包含文本字段和按钮的代码。我从模板文件调用hello_word()函数,它被正确显示,但是当我单击按钮时,AJAX不工作。我发现的问题是ajax_script()未加载,并且在源代码调试模式中,当我单击按钮时,什么都没有。

那么,当我从模板文件调用hello\u word()时,如何正确加载ajax函数呢?

共有1个答案

樊浩初
2023-03-14

你把事情搞混了。

add_action('wp_ajax_my_action','your_handler');add_action('wp_ajax_nopriv_my_action','your_handler');用于添加函数,该函数将分别处理登录用户和来宾用户对ajax调用的响应。

add_操作('wp_footer','ajax_script') -页脚的前端操作是wp\u footer,只有在主题真正调用它时,它才会起作用。但最好的做法是有一个单独的。包含插件所有js的js文件,而不是内联输出
要将脚本排队,可以使用以下代码

function enqueue_assets()
{
    wp_enqueue_script('your_plugin_js', plugins_url('/my.js', __FILE__), array('jquery'), false, true); //true will put it into the footer
    wp_localize_script('your_plugin_js', 'your_plugin_ajax_object', array('ajax_url' => admin_url('admin-ajax.php', ((is_ssl()) ? 'https' : 'http')))); // your url for ajax call wil be available as your_plugin_ajax_object.ajax_url
    //wp_enqueue_style('your_plugin_css', plugins_url('/my.css', __FILE__)); // you can output css here too if you want
}
add_action('wp_enqueue_scripts', 'enqueue_assets');

你可以在任何你喜欢的地方调用你的hello\u world函数。

 类似资料:
  • 问题内容: 我想在我的页面上有一个链接(是否有更好的选择?),单击该链接将发出Ajax请求。(单击链接后,我想更新数据库中的字段。) 实现此目的的最简单方法是什么? 你能推荐我一些教程吗? 问题答案: 真的很简单。在您看来,有这样的链接/按钮。重要的一点是 :remote = > true 要么 显然,您必须获取update_thingy_path才能正常解决某些问题。区别在于渲染时将渲染 .js

  • 问题内容: 请保持谦虚,因为我还是Web编程的新手,而Ajax的新手! 我创建了一个C#函数,该函数从mssql数据库中提取数据,将其格式化为json字符串并返回。现在,我需要通过与C#代码文件相关的aspx页面,从我的javascript(jQuery)滑块进行调用。 实际上,我以前从未做过类似的事情,通过谷歌搜索可以知道我需要使用xmlHttpRequest,但是如何使函数完全掌握这个字符串呢

  • 我想在Prestashop管理员中打一个ajax电话: 我创建了一个没有配置页面的模块。它只是在后台页面添加了一个按钮,我试图对我的模块文件进行ajax调用,但没有成功。 在前端进行ajax调用是可行的(我在modules/mymodule/controller/front/directory中添加了一个ajax.php文件),我尝试为admin做同样的事情,但根本不起作用。 我所做的: 从act

  • 问题内容: 我有一个带有2个下拉框的Wordpress网站。当我在第一个下拉框中选择一个选项时,我希望第二个选项被PHP函数中的数据刷新。为此,我需要ajax。但是我正在努力将Ajax绑定到Wordpress中。 HTML看起来像这样: 现在,例如,当用户选择“销售”时,我希望第二个选择标签重新加载来自PHP数组的匹配价格。 PHP函数如下所示: 我将jQuery Ajax调用保存在单独的.js文

  • 问题内容: 我有一个链接,链接到domain.com,当一个人单击时,我希望它对counter.php进行ajax调用并向其中发布2个变量,因此它可以为该链接的视图添加1个。 我有一个链接: 我将如何使用jquery? 编辑: 我尝试过这样的事情 它似乎可以正常工作,但是在萤火虫中,请求永远不会完成……它只是在执行“正在运行”动画。counter.php完成后会回显一些文本(不需要在任何地方显示)