私はWordPressプラグインの開発を行っているところですが、そこから私はまったく新しいプラグインを作成するか、データベースビューを作成することができます。
クライアントは、ユーザ別の単純なダウンロードログを望み、次にこれらのログをCSVにエクスポートできるようにしたいと考えています。
ロギングは十分に簡単で行われています。ログをCSVにエクスポートするための私の計画は、ログをエクスポートするべきである テーブルエクスポートプラグイン を使うことです。クライアントは基本的なインターフェースに満足しています。
ただし、ログは2つのテーブルに分割され、ログの「カテゴリ」は別のテーブルに賢明に正規化されています - ただし、これはユーザーにとって意味がありません。私はこれをデータベースビューで簡単に直すことができます。
CREATE VIEW wp_my_evil_export_view AS
SELECT `e`.`id`, `l`.`log_name` as 'category',`l`.`description`, `e`.`date`, `u`.`user_email` as 'email', `e`.`text`
FROM `wp_wls_entries` as `e`,
`wp_wls_logs` as `l`,
`wp_users` as `u`
WHERE `e`.`log_id` = `l`.`id`
AND `e`.`user_id` = `u`.`id`
これはその後プラグインの中の別々のテーブルとして楽しく表示されます、クライアントはこれをクリックすることができます、そしてそれはCSVとしてうまくエクスポートします。
しかし、これは私をわずかに汚く感じさせます。その完全なハック、あらゆる面で完全にWordPress以外、誰もGoogle検索でビューを作成することさえ考えていないようです。
それにもかかわらず、その根本的なプラグインがそのデータベース構造を変更しない限り、その単純な、比較的壊れそうにない。
ですから、これが本当に悪い場合は、この質問をここにいる他の人への警告にしてください。
それ以外の場合、この場合は意味がありますか?それとも、この問題を解決するために私が見逃した簡単な方法がありますか?
カスタムテーブルでは、必要なことは何でもします。ビューが必要なものであれば、それを使用してください。
ただし、エクスポーターでコードを分離することを検討するかもしれません。はじめにwp-admin/includes/export.php
を見てください。実際のSQLとエクスポート形式を別々にしておくと、次のことができます。
あなたが言及した プラグイン はそうしません。加えて、それはエクスポートさえ使用しません API インタフェース。データをエクスポートする場所は常に1つだけです。Tools/Export。