产品分类表,产品表,询盘表,这些表怎么创建,在哪儿CRUD。
你关注的“产品分类表、产品表、询盘表”的创建与CRUD(增删改查),在这套极简方案里完全复用WordPress原生数据库表+后台操作,无需手动建表(避免破坏WordPress规范),下面分表讲清楚“表结构、创建方式、CRUD操作入口”,全程贴合新手友好的逻辑:
核心原则
WordPress的设计理念是“复用核心表,避免自建表”,所以我们不会在数据库里手动CREATE TABLE,而是通过:
- 自定义文章类型/分类法 → 映射“产品表/产品分类表”(复用
wp_posts/wp_terms等核心表); - 自定义字段 → 存储产品扩展信息(SKU/价格/MOQ);
- 表单提交数据 → 存储到
wp_posts(自定义文章类型)或wp_postmeta,或直接发邮件(询盘表极简方案)。
一、产品分类表(对应“产品分类”)
1. 表结构(复用WordPress原生表)
| 实际关联表 | 作用 | 核心字段(简化) |
|---|---|---|
wp_terms | 存储分类名称/别名 | term_id(主键)、name(分类名)、slug(URL别名) |
wp_term_taxonomy | 关联分类类型 | term_taxonomy_id、term_id、taxonomy(固定为product_category) |
wp_term_relationships | 关联分类与产品 | object_id(产品ID)、term_taxonomy_id |
2. 创建方式(无需写SQL,后台可视化操作)
我们在functions.php里注册了product_category分类法,后台会自动生成操作入口:
- 入口:WordPress后台 → 产品(Products) → 产品分类(Product Categories)(和“文章分类”操作逻辑完全一致);
- 操作:点击“添加新分类”,填写“名称”(中英双语)、“别名”(URL友好名称),直接创建,无需接触数据库。
3. CRUD操作(全在WordPress后台)
| 操作 | 后台入口 | 说明 |
|---|---|---|
| 新增(C) | 产品 → 产品分类 → 添加新分类 | 支持层级分类(如“电子配件”下建“手机壳”),Polylang会自动适配多语言 |
| 查询(R) | 产品 → 产品分类(列表页) | 可查看所有分类、关联产品数,支持搜索/筛选 |
| 修改(U) | 产品 → 产品分类 → 点击分类名称 | 编辑分类名、别名、描述,保存后自动同步到数据库 |
| 删除(D) | 产品 → 产品分类 → 悬停分类 → 点击“删除” | 支持“删除并归并到其他分类”,避免产品无分类 |
二、产品表(对应“产品”)
1. 表结构(复用WordPress原生表)
| 实际关联表 | 作用 | 核心字段(简化) |
|---|---|---|
wp_posts | 存储产品基础信息 | ID(产品主键)、post_title(产品名)、post_content(产品详情)、post_type(固定为product)、post_status(发布/草稿) |
wp_postmeta | 存储产品扩展字段 | meta_id、post_id(关联产品ID)、meta_key(字段名:_product_sku/_product_price/_product_moq)、meta_value(字段值) |
wp_postsmeta | 产品特色图片 | _thumbnail_id(关联媒体库图片ID) |
2. 创建方式(无需写SQL,后台可视化操作)
我们在functions.php里注册了product自定义文章类型,后台会自动生成操作入口:
- 入口:WordPress后台 → 产品(Products) → 添加新产品(Add New Product);
- 操作:填写产品名称、详情,上传特色图片,在下方“Product Details”面板填写SKU/价格/MOQ/规格,点击“发布”即可,无需接触数据库。
3. CRUD操作(全在WordPress后台)
| 操作 | 后台入口 | 说明 |
|---|---|---|
| 新增(C) | 产品 → 添加新产品 | 填写基础信息+自定义字段,发布后自动存入wp_posts+wp_postmeta |
| 查询(R) | 产品 → 所有产品(列表页) | 可查看所有产品,支持按分类/状态/日期筛选,搜索产品名/SKU |
| 修改(U) | 产品 → 所有产品 → 点击产品名称 | 编辑任意字段,保存后自动更新数据库 |
| 删除(D) | 产品 → 所有产品 → 悬停产品 → 点击“删除” | 支持批量删除,删除后wp_posts中post_status改为trash(回收站),彻底删除需清空回收站 |
进阶:批量CRUD(可选)
如果产品数量多,可装轻量插件WP All Import/Export:
- 批量导入:Excel/CSV文件(含产品名/SKU/价格)一键导入,自动生成产品;
- 批量导出:将所有产品数据导出为Excel,方便线下编辑;
- 批量修改:通过“快速编辑”/“批量编辑”修改价格、分类等字段。
三、询盘表(对应“询盘表单提交数据”)
方案1:极简版(无需建表,直接发邮件)
适合你的场景(仅一个询盘表单),无需存储数据,表单提交后直接发邮件到你的邮箱,优点:无数据库冗余,速度快。
- 配置:Contact Form 7后台 → 编辑表单 → “邮件”标签,填写收件人邮箱(你的外贸邮箱),邮件内容包含表单字段(姓名/邮箱/产品/留言);
- 操作:用户提交表单后,你直接在邮箱查看/回复,无需CRUD操作。
方案2:标准版(存储询盘数据,复用wp_posts)
如需在后台查看/管理询盘数据,创建inquiry自定义文章类型(存储询盘),步骤如下:
1. 新增代码(在functions.php末尾添加)
// 注册询盘自定义文章类型(仅后台可见,前台不显示)
function create_inquiry_post_type() {
$labels = array(
'name' => pll__('Inquiries'),
'singular_name' => pll__('Inquiry'),
'add_new' => pll__('Add New Inquiry'),
'add_new_item' => pll__('Add New Inquiry'),
'edit_item' => pll__('Edit Inquiry'),
'all_items' => pll__('All Inquiries'),
);
$args = array(
'labels' => $labels,
'public' => false, // 前台不可见
'show_ui' => true, // 后台可见
'supports' => array('title', 'custom-fields'),
'menu_icon' => 'dashicons-email',
'capability_type' => 'post',
);
register_post_type('inquiry', $args);
}
add_action('init', 'create_inquiry_post_type');
// Contact Form 7 提交后保存询盘到数据库
function save_inquiry_from_cf7($contact_form) {
$submission = WPCF7_Submission::get_instance();
if (!$submission) return;
$posted_data = $submission->get_posted_data();
// 提取表单字段(需和CF7表单字段名一致)
$name = isset($posted_data['your-name']) ? sanitize_text_field($posted_data['your-name']) : '';
$email = isset($posted_data['your-email']) ? sanitize_email($posted_data['your-email']) : '';
$phone = isset($posted_data['your-phone']) ? sanitize_text_field($posted_data['your-phone']) : '';
$product = isset($posted_data['your-product']) ? sanitize_text_field($posted_data['your-product']) : '';
$message = isset($posted_data['your-message']) ? sanitize_textarea_field($posted_data['your-message']) : '';
// 创建询盘文章
$inquiry_id = wp_insert_post(array(
'post_type' => 'inquiry',
'post_title' => pll__('Inquiry from') . ' ' . $name . ' (' . $email . ')',
'post_status' => 'publish',
'post_author' => 1,
));
// 保存询盘自定义字段
if ($inquiry_id) {
update_post_meta($inquiry_id, '_inquiry_name', $name);
update_post_meta($inquiry_id, '_inquiry_email', $email);
update_post_meta($inquiry_id, '_inquiry_phone', $phone);
update_post_meta($inquiry_id, '_inquiry_product', $product);
update_post_meta($inquiry_id, '_inquiry_message', $message);
}
}
add_action('wpcf7_mail_sent', 'save_inquiry_from_cf7');2. 表结构(复用wp_posts+wp_postmeta)
| 表名 | 作用 | 核心字段 |
|---|---|---|
wp_posts | 询盘基础信息 | ID(询盘ID)、post_title(询盘标题:来自XXX)、post_type(inquiry) |
wp_postmeta | 询盘详情 | _inquiry_name(姓名)、_inquiry_email(邮箱)、_inquiry_product(产品)等 |
3. CRUD操作(后台可视化)
| 操作 | 后台入口 | 说明 |
|---|---|---|
| 新增(C) | 自动创建:用户提交CF7表单后,代码自动创建询盘记录 | 无需手动操作,数据自动存入数据库 |
| 查询(R) | WordPress后台 → Inquiries → All Inquiries | 查看所有询盘,按时间排序,支持搜索姓名/产品 |
| 修改(U) | Inquiries → 点击询盘标题 | 编辑询盘信息(如添加回复备注),保存后更新数据库 |
| 删除(D) | Inquiries → 悬停询盘 → 点击“删除” | 支持批量删除,移入回收站或彻底删除 |
四、总结(核心关键点)
- 无需手动建表:所有表都复用WordPress原生表,通过“自定义文章类型/分类法”映射,避免破坏WordPress规范;
- CRUD全在后台:无需写SQL/PHP代码,通过WordPress后台可视化操作,和编辑文章/分类逻辑一致,新手易上手;
- 询盘表可选:极简场景直接发邮件即可,需管理数据则用自定义文章类型存储,轻量无冗余。
如果需要,我可以补充:
- Contact Form 7 询盘表单的具体字段配置代码;
- 产品/询盘数据的Excel批量导入模板;
- 后台自定义列表(如产品列表显示价格/SKU列)的配置方法。
(豆包)