我正在开发一个使用自定义模板/主题的wordpress站点,但我遇到了麻烦。我希望在用户单击按钮时使用Ajax调用函数。在一页纸上,我有一个这样的按钮:
我有一个jQuery/Ajax函数,如下所示:
jQuery(document).ready(function() {
jQuery(".mark-as-read").click(function () {
console.log('The function is hooked up');
jQuery.ajax({
type: "POST",
url: "/wp-admin/admin-ajax.php",
data: {
action: 'mark_message_as_read',
},
success: function (output) {
console.log(output);
}
});
});
});上面的函数位于wp-content/themes/my-theme/js/wp_ajax_calls.js中。我将脚本添加到站点中,如下所示:
1)我将它添加到我的functions.php文件中:
wp_enqueue_script( 'ajax calls', get_template_directory_uri() .'/js/wp_ajax_calls.js', array('jquery'), '1.0', true);2)我在标题中包含了脚本。
当我按原样单击按钮时,将显示console.log语句。据我理解,我希望我的ajax函数调用一个允许我使用$wpdb的php函数。我在functions.php上有这个:
function mark_message_as_read() {
global $wpdb;
// do stuff.
}这就是我感到困惑的地方。我有两个主要问题:
1)我想我应该有一些add_action() 's,但我不知道放在哪里,我也不知道我应该使用什么钩子。
另外,我希望能够将数据(消息id)传递给我的db查询的php函数。如何将参数传递给该函数?
我不想使用像if( isset($_POST['message_whatever']) ) twentyfifteen_message_whatever();这样的东西,因为我设置消息的方式。
如果需要,很乐意提供更多的信息。提前感谢您的帮助!!
发布于 2018-09-08 06:03:38
您也可以对非of进行一些研究,以便为应用程序添加一层安全性:https://codex.wordpress.org/WordPress_非。
https://wordpress.stackexchange.com/questions/313643
复制相似问题