error in getting post id

时间:2012-12-20 作者:vaibhav

我正在制作一个投票系统

问题是post id返回为空

我确信post id返回为空

Bcoz当我在那里输入一个真正的post id值时,它似乎起作用了

例如

update_post_meta(123, "votes" , $newvotes)
工作正常

但是

 update_post_meta($postid, "votes" , $newvotes)
工作不正常

这是代码

  add_action("wp_ajax_add_votes_options", "add_votes_options"); 
  add_action("wp_ajax_nopriv_add_votes_options", "add_votes_options");
  function add_votes_options() {
if (!wp_verify_nonce($_POST[\'nonce\'], \'voting_nonce\'))
    return;

$postid = $_POST[\'postid\'];
$ip = $_POST[\'ip\'];

$voter_ips = get_post_meta($postid, "voter_ips", true);
if(!empty($voter_ips) && in_array($ip, $voter_ips)) {
    echo "null";
    die(0);
} else {
    $voter_ips[] = $ip;
    update_post_meta($postid, "voter_ips", $voter_ips);
}   

$current_votes = get_post_meta($postid, "votes", true);
$new_votes = $current_votes + 1;
update_post_meta($postid, "votes", $new_votes);
$return = $new_votes>1 ? $new_votes." votes" : $new_votes." vote";
echo $return;
die(0);
    }
我也试过这个

add_action("wp_ajax_add_votes_options", "add_votes_options");
add_action("wp_ajax_nopriv_add_votes_options", "add_votes_options");
function add_votes_options() {
if (!wp_verify_nonce($_POST[\'nonce\'], \'voting_nonce\'))
    return;

$postid = $_POST[\'postid\'];
$ip = $_POST[\'ip\'];

$voter_ips = get_post_meta($_REQUEST["post_id"], "voter_ips", true);
if(!empty($voter_ips) && in_array($ip, $voter_ips)) {
    echo "null";
    die(0);
} else {
    $voter_ips[] = $ip;
    update_post_meta($_REQUEST["post_id"], "voter_ips", $voter_ips);
}   

$current_votes = get_post_meta($_REQUEST["post_id"], "votes", true);
$new_votes = intval($current_votes) + 1;
update_post_meta($_REQUEST["post_id"], "votes", $new_votes);
$return = $new_votes>1 ? $new_votes." votes" : $new_votes." vote";
echo $return;
die(0);
    }
但这些代码都不起作用

编辑#1在jQuery调用我的操作

$("#vote").not(".disabled").click(function() {
    var el = $(this);
    el.html(\'<span id="loader"></span>\');
    var nonce = $("input#voting_nonce").val();
    var data = {
        action: \'add_votes_options\',
        nonce: nonce,
        postid: \'<?php echo $post->ID; ?>,\',
        ip: \'<?php echo $_SERVER[\'REMOTE_ADDR\']; ?>\'            
    }; 

1 个回复
SO网友:bueltge

在默认安装WP时,您总是会获得带有该函数的帖子的IDget_the_ID(). Id不适用于您对全局变量的操作:$post.

echo $GLOBALS[\'post\']->ID
这还不够,然后执行全局wp\\U查询

$GLOBALS[\'wp_query\']->post->ID;

结束

相关推荐

Functions.php:从博客中排除类别

所以很明显,如何从模板中排除某些类别,但我不想修改4个模板,使它们忽略某个类别。有没有一种方法可以将某个类别从阅读设置的“博客”集中排除?我正在将博客分配到名为“博客”的页面。。。但显然,档案和搜索也需要对这一超出类别的内容视而不见。我宁愿在里面做functions.php