0

我是 ajax 新手,我正在尝试创建一个简单的计数器,在页面加载后更新 Wordpress 中的自定义字段。该页面已缓存,因此任何单独使用 PHP 的尝试都将不起作用。

我想简单地通过 ajax 将帖子 ID 传递给 php 文件,获取自定义字段,并使用新的命中数对其进行更新。

我目前有以下代码,但无法让它更新自定义字段。这是jQuery:

 $(document).ready(function(
    $.ajax({
    url:'http://www.example.com/hits/hits.php',
    cache: false,
    type: 'POST',
    data: {PostId: '<?php echo get_the_ID() ?>'}
    });
));

以及它调用的 PHP 文件:

<?php 
/* Template Name: AJAX  */ 
?>

<?php 
    $postid = $_POST['PostId'];  // get the hits from AJAX and save it for PHP      

    $hits = (int) get_post_meta($postid, 'hit_number', true);
    $newhits = $hits + 1;
    update_post_meta($postid, 'hit_number', $newhits);
?>

我究竟做错了什么?另外,有没有办法在同一页面/文件中包含 PHP 函数以避免引入外部文件?我担心随着流量变大,文件会被过于频繁地请求。

谢谢你的帮助!

4

1 回答 1

0

在查询字符串中添加时间戳。

var date = new Date();
var timestamp = date.getTime();

$(document).ready(function(
    $.ajax({
    url:'http://www.example.com/hits/hits.php?t=' + timestamp,
    cache: false,
    type: 'POST',
    data: {PostId: '<?php echo get_the_ID() ?>'}
    });
));

在查询字符串中添加时间戳的目的是防止获取缓存结果。

于 2013-06-13T15:23:02.997 回答