2

我正在构建我的第一个插件,并使用以下链接作为参考。 http://www.sitepoint.com/create-a-voting-plugin-for-wordpress/

我试图理解代码的以下部分:

function voteme_addvote()
{
    $results = '';
    global $wpdb;
    $post_ID = $_POST['postid'];
    $votemecount = get_post_meta($post_ID, '_votemecount', true) != '' ? get_post_meta($post_ID, '_votemecount', true) : '0';
    $votemecountNew = $votemecount + 1;
    update_post_meta($post_ID, '_votemecount', $votemecountNew);
    $results.='<div class="votescore" >'.$votemecountNew.'</div>';
    // Return the String
    die($results);
}

我运行代码并且它可以工作,但我只是不明白以下内容:

  • “get_post_meta”在做什么?
  • 它是否创建了一个自定义元字段,与 add_post_meta 相同?如果没有,为什么没有 add_post_meta?
  • 我检查了数据库,看起来它正在创建一个自定义元字段......所以按照这个顺序,get_post_meta 和 add_post_meta 有什么区别?

非常感谢您帮助我理解这一点。

4

1 回答 1

1

第一次运行代码时,get_post_meta 返回 '',因此 $votemecount 设置为 0。以下 update_post_meta 创建新的元字段,如下所述。不显示以 _ 开头的值(是隐藏的元字段)。

函数 update_post_meta() 更新指定帖子的现有元键(自定义字段)的值。

这可以用来代替 add_post_meta() 函数。这个函数要做的第一件事是确保 $meta_key 已经存在于 $post_id 上。如果没有,则改为调用 add_post_meta($post_id, $meta_key, $meta_value) 并返回其结果。

于 2012-11-21T03:37:40.920 回答