wordpress / php:创建一个不刷新页面的upvote按钮

时间:2014-09-02 21:30:24

标签: javascript php html wordpress

在这里开始开发人员,使用wordpress作为平台制作网站。我希望用户能够点击一个upvote按钮并在不刷新页面的情况下upvote一个帖子。我想我应该使用javascript突出显示按钮一次点击以及更改投票号。但是,我无法弄清楚如何在不刷新页面的情况下运行php脚本(更新数据库)。

提前致谢,

1 个答案:

答案 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获取更多信息