2012-11-21 106 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