ワードプレスのデータベース名はwpでテーブルがいくつかある。現サイトでは書誌情報は1頁ごとのhtmlファイルである。すでにその情報はある程度構造化してデータベースに格納してある。ワードプレスでは、一点ごとに投稿という形で書誌情報を登録することになり、その除法が格納されるテーブルがwp_posts。今回、書誌情報の色々なスペック(定価、判型、ISBNなど)はカスタムフィールドという機能を使って投稿することとした。そのデータはwp_postmetaというテーブルに格納される。
wp_postsとwp_postmetaの関係はwp_postsのIDがwp_postmetaのpost_idと一致するということ。ちなみにwp_postsのIDはauto_incrementで、wp_postmetaのauto_incrementなキーはmeta_idとなる。
wp_postmetaの構造は結構シンプルで、同名のキーがあっても問題ないように考慮されているようだ。今回は、投稿タグやカテゴリには手を出していない。そっちはテーブルの関係は若干入り組んでいる。
第一段階として行ったことは、まずwp_postsに書籍名、目次、内容などのデータを挿入し、そのレコードのIDを取得して、それをwp_postmetaのpost_idの値にして書誌情報データを挿入。目次や内容の値は、アポストロフィー等の記号をちゃんとエスケープしておかないといけない。
次はカバー画像。投稿の中に挿入するよりも、「アイキャッチ画像」という機能を使った方がよさげである。 そこで、同様に何点か挿入してからデータベースの動きを見る。
関係のあるテーブルは先ほどと同じで、wp_postsとwp_postmeta。
注目すべきwp_postsの項目は次の通り。
- ID:auto_incrementな値。仮に画像投稿IDとしておく。
- post_status:データの公開状況。親の状態を継承。
- post_title:画像のタイトル。
- post_name:投稿の名前。
- post_parent:親子関係。この画像がアイキャッチ画像として使用される投稿のID。
- post_type:投稿データのタイプ。attachmentでメディア。
- post_mime_type:メディアのタイプ。
- guid:投稿した画像の場所?
- アイキャッチ画像と投稿の関係?
- meta_id: auto_incrementな値。
- post_id:上記wp_postsのpost_parentと同じ値。
- meta_key:"_thumbnail_id"という値。
- meta_value:画像のID。上記wp_postsのID。
- アイキャッチ画像の情報
- meta_id:auto_incrementな値。
- post_id:上記wp_postsのID。
- meta_key:"_wp_attachment_metadata"という値。
- meta_value:画像の大きさなど配列で値が入っている。
- アイキャッチ画像の場所?
- meta_id:auto_incrementな値。
- post_od:上記wp_postsのID。
- meta_key:"_wp_attached_file"という値。
- meta_value:wp/content/uploads以下のディレクトリ名とファイル名。
とここまできてブラウザで確認。うまく行っているようではある。wp_postmetaのレコード数が肥大化していくのが気にはなっているのだが。。。
0 件のコメント:
コメントを投稿