get_post_meta和add_post_meta在wordpress中不起作用

时间:2019-06-08 17:51:18

标签: php wordpress wordpress-theming

我正在尝试使用add_post_metaget_post_meta在wordpress中进行一个简单的测试,但是没有用。我正在尝试以下代码:

function test_post_meta($postID) {
    $count_key = 'test';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        add_post_meta($postID, $count_key, '1');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
    var_dump($count);
    $count = get_post_meta($postID, $count_key, true);
    var_dump($count);
    update_post_meta($postID, $count_key, $count);
}

结果是:

布尔(假)布尔(假)

在我的函数的每次调用中,我期望1-1、2-2等等。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

数据库中根本没有保存任何内容吗?您是否尝试过使用test以外的其他值?另外,请确保$postID值是实际给出的并且是现有帖子。

您还可以检查update_post_meta的结果,检查WordPress documentation以获得预期的结果。

我对代码进行了一些优化:

function test_post_meta($postID) {
    $count_key = 'test';
    $count = (int)get_post_meta($postID, $count_key, true) ?: 1;

    $count++;
    update_post_meta($postID, $count_key, $count);


    var_dump($count);
    var_dump(get_post_meta($postID, $count_key, true));
}