2012-11-21 69 views
2

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

,我想underestand代码的以下部分:

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有什么区别?

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

回答

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),并返回结果。

+0

非常感谢这澄清了很多事情! – MariaZ

+0

不客气! – Gary