ここ数日は、ペイントボールゲームのスコアを保持する機能を追加したプラグインを開発してきました。私がそれを終えることに成功したとき、私は彼らがのようなものを加えることができるようにフォームを提示したいです:ヒット、死、勝利、損失、場所、役割と日付。
それはWPデータベースのカスタムテーブルに行きます。
彼らはまた、最後の5つのレコード、勝敗の比率などを示すプロファイルページを取得します。
管理者にはこのテーブルを表示するメニューもあり、日付を操作することができるはずです(不正使用の場合)。
私はそれから私が考えたプラグインをさらに持っています。管理画面が表示され、テーブルから情報をロードしています(いくつかの列をソートしています)。しかし、私はまだ編集や削除の機能を働かせていません。
私はそれを考えました。以前はカスタム投稿タイプを使用していました。このプラグインをカスタム投稿タイプにする方が簡単ではないでしょうか。ユーザーはフロントエンドからデータを送信できますか?データを照会してそれを使って簡単な計算をすることができますか?私が間違っていなければ、管理者はカスタム投稿タイプを使用してデータをかなり簡単に変更できます。
私が今考えることができる唯一の欠点はテーマの問題です。短いコードを使ってカスタムテーブルのデータをプラグインで表示してから、カスタム投稿をテーマに統合する方が簡単だと思いますか。
カスタム投稿タイプ用の短いコードを作成できますか?
それで、私はプラグインをやめてカスタム投稿タイプを選ぶべきですか?このプラグインを最終的に共有できるようにしたいので、カスタムタイプを使用する場合は、カスタムポストタイプを有効にするプラグインにすることになるでしょう。
posts
とpost_meta
テーブルは、通常のブログ投稿と同様のコンテンツのために作成されています。スキーマを見て、自分自身に尋ねてください。これらのフィールドは必要ですか?
CREATE TABLE $wpdb->posts (
ID bigint(20) unsigned NOT NULL auto_increment,
post_author bigint(20) unsigned NOT NULL default '0',
post_date datetime NOT NULL default '0000-00-00 00:00:00',
post_date_gmt datetime NOT NULL default '0000-00-00 00:00:00',
post_content longtext NOT NULL,
post_title text NOT NULL,
post_excerpt text NOT NULL,
post_status varchar(20) NOT NULL default 'publish',
comment_status varchar(20) NOT NULL default 'open',
ping_status varchar(20) NOT NULL default 'open',
post_password varchar(20) NOT NULL default '',
post_name varchar(200) NOT NULL default '',
to_ping text NOT NULL,
pinged text NOT NULL,
post_modified datetime NOT NULL default '0000-00-00 00:00:00',
post_modified_gmt datetime NOT NULL default '0000-00-00 00:00:00',
post_content_filtered longtext NOT NULL,
post_parent bigint(20) unsigned NOT NULL default '0',
guid varchar(255) NOT NULL default '',
menu_order int(11) NOT NULL default '0',
post_type varchar(20) NOT NULL default 'post',
post_mime_type varchar(100) NOT NULL default '',
comment_count bigint(20) NOT NULL default '0',
PRIMARY KEY (ID),
KEY post_name (post_name),
KEY type_status_date (post_type,post_status,post_date,ID),
KEY post_parent (post_parent),
KEY post_author (post_author)
)
カスタムテーブル用のカスタムフォームの作成は、カスタム投稿タイプ用のフォームの作成とほぼ同じプロセスです。しかしあなた自身のテーブルではあなたが必要とするフィールドだけを使うことができます、あなたが望むならあなたは他のDBエンジンと PDO さえ使うことができます。
さらに、カスタム投稿タイプはマルチサイトネットワークでは機能しません。それらは不適切に書かれたプラグインの影響を受ける可能性があります(一部のパブリック投稿タイプに対してメタボックスまたは分類法を有効にするものもあります)。
あなたが使用するテーブルはあなたのデータモデルに合うべきであり、その逆ではありません。