我正在尝试使用add_post_meta
和get_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等等。我在做什么错了?
答案 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));
}