php - 通过 AJAX 调用任何 Wordpress PHP 函数

标签 php ajax wordpress

<分区>

学习 AJAX 的基础知识对我来说非常困难,因为我只能设法找到复杂的示例。事实上,我想做一件看似简单的事情,但我找不到任何简单的解决方案。有很多关于如何使用 AJAX 检查各种表单等的说明。但是很少有关于该技术如何在 WordPress 中工作的数据。

官方说明对我也没有用: https://codex.wordpress.org/AJAX_in_Plugins

我到底需要什么?

例如,我在functions.php 中有一些函数。让它成为一个简单的字符串:

<?php 

function do_echo() {

echo "Hello";

}

现在,我想在帖子中创建一个按钮并使用 AJAX 调用 do_echo()。

<button class="my_button" type="button" role="button">Click Me</button>

所以,我要做的第一件也是最重要的事情就是按下按钮并获得“Hello,world!”显示。

当然,其实我需要执行更复杂的功能。但是,首先,我需要做这些简单的事情。

我意识到我需要使用 jQuery 做这样的事情

$.ajax({
url: '/path/to/file',
type: 'default GET (Other values: POST)',
dataType: 'default: Intelligent Guess (Other values: xml, json, script, 
or html)',
data: {param1: 'value1'},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});

我知道我需要在 PHP 中做这样的事情

add_action('wp_ajax_(action)', 'my_action_callback');
add_action('wp_ajax_nopriv_(action)', 'my_action_callback');

但我不明白我需要执行哪些具体步骤才能将这些东西附加到 WordPress。

谁能帮助我了解如何在单击按钮时使用 AJAX 从 WordPress 中的 functions.php 调用任何 PHP 函数的简单说明?

提前致谢。

最佳答案

好吧,让我们为此写一个简化的例子。

这是 functions.php 的示例:

add_action('wp_ajax_nopriv_sayhello', 'say_hello_function');
add_action('wp_ajax_sayhello', 'say_hello_function');
function say_hello_function(){
echo 'hello';
exit();
}

这是前端部分:

<button class="my_button" type="button" role="button">Click Me</button>

<script>
jQuery(".my_button").click(function(){

jQuery.get(ajaxurl,{'action': 'sayhello'}, 
function (msg) { alert(msg);});

});

</script>

更新:

在您的网站内容中显示返回的数据:

   <script>
    jQuery(".my_button").click(function(){  
    jQuery.get(ajaxurl,{'action': 'sayhello'}, 
    function (msg) { jQuery(".result_area").html(msg);});
    });
   </script>

要使上述代码正常工作,您需要有一个带有“result_area”类的 div。

<div class="result_area"></div> 

关于php - 通过 AJAX 调用任何 Wordpress PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47351752/

相关文章:

javascript - 在 rails 中从 Ajax 渲染部分表单

javascript - 如何从 JQuery Ajax 请求中获取 "data"

javascript - XMLHttpRequest 无法加载 *...* 来源 : * is not allowed by Access-Control-Allow-Origin - ON THE SAME SERVER

javascript - 删除内容末尾的帖子查看计数

php - 在VerifyCsrfMiddleware.php第16行laravel 5中出现TokenMismatchException

php - 如何在 PHP 中使用 Rails 应用程序 session

php - 通过一个mysql查询插入到不同的表中

php - Symfony2 功能测试打印出重定向 html 并停止测试执行

wordpress - Woocommerce - 如果在结账时登录,则删除所有旧购物车商品

http-status-code-404 - 自定义帖子类型上的 Wordpress 预览中断