0017

WordPressのDBを直接操作してカスタムフィールドに値を追加する

WordPressのDBを直接操作してカスタムフィールドに値を追加する

2011.9.1

前回、「wp_insert_postの戻り値には記事ID(POST_ID)が返るらしい」という記事でPOST_IDが取得できる事が分かりましたが、POST_IDを元にカスタムフィールドを入力できないか試してみた所、出来ることが確認できたのでメモ。

確認環境

大まかな流れ

大まかには、以下のような流れになります。

  1. wp_insert_post関数を使って記事を投稿する(wp_insert_postの記述の詳細については「関数リファレンス/wp insert post – WordPress Codex 日本語版」)あたりを参考にしてください
  2. wp_insert_postを実行すると記事が投稿されつつ、返り値としてPOST_IDが取得できるので、適当な変数に入れておきます。(ここでは仮に$postidとします)
  3. $wpdb->queryを使い、カスタムフィールドに追加する

コード

queryを使いカスタムフィールドに値を追加する
$wpdb->query($wpdb->prepare(
    "INSERT INTO `{$wpdb->postmeta}` (
    `meta_id`,
    `post_id`,
    `meta_key`,
    `meta_value`
    )
    VALUES
    ( NULL, '{$postid}', 'カスタムフィールド名1', '値' ),
    ( NULL, '{$postid}', 'カスタムフィールド名2', '値' ) 
    ;"
));
?>

解説&メモ