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を使い、カスタムフィールドに追加する

コード

// データベースに投稿を追加
//$postの中身はwp_insert_postの仕様を見ながら記事を作成してください
//記事が投稿されつつ、$postidには、返り値として記事IDが代入されます。
$postid = wp_insert_post( $post );

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

解説&メモ