2013/10/31
MTのテーブル構成について
MTのサイトで複数条件検索を作る必要があり、MTのテーブル構造について調べた。
今回は例えば金額やエリアなどカスタムフィールドを多様しているため
mt_entryテーブルではなくmt_entry_metaから検索する必要があり、中身を調査した。
以下が簡単な構造
entry_meta_entry_id | エントリーID |
entry_meta_type | 指定したテンプレートタグ |
entry_meta_vchar | チェックボックスで設定された値 |
entry_meta_vchar_idx | テキストボックスで設定された値 |
entry_meta_vdatetime | 日付で設定された値 |
entry_meta_vdatetime_idx | ? |
entry_meta_vinteger | チェックボックスの値? |
entry_meta_vinteger_idx | チェックボックスの値? |
entry_meta_vfloat | ? |
entry_meta_vfloat_idx | ? |
entry_meta_vblob | ? |
entry_meta_vclob | テキストエリアで設定された値 |
検索をかけたい項目(値段やエリアなど)に対してentry_meta_typeで絞り込み、
それに対する値をその後の適切なカラムから取得する。
注意点としては同一のエントリーIDで複数レコードあるため、
条件をレコードごとにマッチさせなければいけない。
AND検索であれば4つ条件を出したら4レコードの条件が合致しているかということをプログラムで判断する必要がある。
あと、検索は上記で問題ないのだが、最も大変だったのが検索したエントリーのパスを取得すること。
パーマリンクの精製方法など色々と調査したが、mt_fileinfoというテーブルを発見。
結局これで行けそうだ。
Author Profile
HOSHINO
ECのことを中心に書きたいと思います。 ネタが無いときはプログラムやデザインのことも書きます。
SHARE