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と同じカスタムメタフィールドを作成しますか?
  • DBを確認したところ、カスタムメタフィールドが作成されているようです...この順序で、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 に答える