在这里开始开发人员,使用wordpress作为平台制作网站。我希望用户能够点击一个upvote按钮并在不刷新页面的情况下upvote一个帖子。我想我应该使用javascript突出显示按钮一次点击以及更改投票号。但是,我无法弄清楚如何在不刷新页面的情况下运行php脚本(更新数据库)。
提前致谢,
答案 0 :(得分:1)
示例upvote php for posts将此添加到您的函数文件....
add_action('wp_ajax_upvote', 'upvote');
add_action('wp_ajax_nopriv_upvote', 'upvote');
function upvote() {
$postid= $_POST['id'];
$direction = $_POST['direction'];
$votes= get_post_meta($postid, '_votes', true);
if($direction='down') {
$votes--;
} else {
$votes++;
}
update_post_meta($postid, '_votes', $votes);
echo $votes;
exit();
}
以上需要安全性,就像$ _POST变量的任何表单提交一样。不要在你的代码中留下这些!!
jQuery代码
jQuery(document).ready(function($){
$('.arrow').click(function(){ //if your upvote has class arrow?
//you need someway of passing postid to here!
//if you want up / downvote -- logic needed here, if not remove direction from below!
$.ajax({
type: "POST",
url: "/wp-admin/admin-ajax.php",
data: {
action: 'upvote',
id: id,
direction: direction //remove if not needed
},
success: function (output) { //do something with returned data
console.log(output);
jQuery('#postupvote').text(output); //write to correct id - maybe use postid in the id of the vote count on the page e.g. id="vote23" jQuery('#vote'+postid)
}
});
});
})
google wordpress ajax获取更多信息