如果你希望每个商品的规格(如电池、颜色、重量)看起来整齐划一,而不需要每次手动排版,使用 ACF 插件 是最专业的做法。ACF(Advanced Custom Fields)是高级自定义字段插件,给 WordPress 的文章、页面、产品、自定义文章类型等,添加结构化的自定义字段。ACF 让 WordPress 从“写博客系统”变成“内容管理系统(CMS)。
想做一个产品页面,只能把内容全写在正文里,比如:
- 重量:3.5kg
- 最高速度:45km/h
- 电池容量:12Ah
这些都混在一大段文字里,就会
- 不好维护
- 不好做样式
- 不好程序调用
ACF 几乎可以绑定到 WordPress 的任何地方:
- 文章(Post)
- 页面(Page)
- WooCommerce 产品
- 自定义文章类型(CPT)
- 分类 / 标签(Taxonomy)
- 用户(User)
- 站点设置(Options Page)
可以让产品参数全部结构化,后期改内容不用碰 HTML,同一套模板复用多个产品
安装并设置自定义字段 (ACF)
下载插件高级自定义字段(ACF),并启用
左侧菜单栏找到ACF,字段组
页面上方点击添加新的字段组
填好字段标签,字段名称。标签是给人看的,字段名是给程序看的,通常,为了可读性强|不冲突|可扩展|适合长期维护,在命名时只用英文 + 小写 + 下划线,不要用中文,大写,空格,连字符 -,空格。推荐字段命名结构为{模块}{内容}{类型/含义},例如
product_basic_info
├─ product_title
├─ product_subtitle
├─ product_price
├─ product_stock
product_performance
├─ product_max_speed
├─ product_range
├─ product_motor_power
往下滑,只关注位置规则这个选项卡,希望分组字段在后台显示的位置 如果
仅限指定商品分类:
文章类型 等于 产品
并且
分类法 等于 产品分类
在商品页面填写数据
设置完成后点右上方的保存设置,打开任何一个 WooCommerce 产品编辑页面,滚动到下方,你会看到刚才创建的字段框。可以看到刚才自定义的字段组,然后输入每个产品特定的数据。每个产品的内容不同,只需修改字段,就可以保证每个产品的描述格式一样,这样就不用一个个修改
WPCode Lite 渲染表格
现在还没有告诉wordpress显示这个字段内容,由于ACF不能直接渲染简码,所以需要下载插件WPCode Lite,这个插件可以自定义php等等文件,不用直接修改function.php,不用担心主题更新覆盖代码
下载启动WPCode Lite插件后,在左侧的菜单栏点击Code Snippets,Add New,写入合适的标题后在下方插入phpd代码
/**
* Product specification table (styled version)
* Usage: [product_spec_table]
*/
add_shortcode('product_spec_table', function () {
if (!is_product()) return ''; // 仅在产品页运行
// 1. [前台显示标签 => ACF字段名]
$groups = [
'性能参数' => [
'最高时速' => '你的字段名',
'电机规格' => ['你的字段名', '你的字段名'],
],
];
ob_start(); ?>
<div class="spec-table-container" style="border: 1px solid #ddd; border-radius: 8px; overflow: hidden;">
<?php foreach ($groups as $title => $rows): ?>
<div style="background: #f5f5f5; padding: 10px; font-weight: bold;"><?php echo $title; ?></div>
<table style="width: 100%; border-collapse: collapse;">
<?php foreach ($rows as $label => $field):
// 如果是数组则用 / 拼接,如果是字符串则直接取值
$value = is_array($field)
? implode(' / ', array_filter(array_map('get_field', $field)))
: get_field($field);
if ($value): // 仅在有内容时显示,避免空白行 ?>
<tr>
<td style="padding: 10px; border-bottom: 1px solid #eee; width: 40%;"><?php echo $label; ?></td>
<td style="padding: 10px; border-bottom: 1px solid #eee;"><?php echo $value; ?></td>
</tr>
<?php endif; ?>
<?php endforeach; ?>
</table>
<?php endforeach; ?>
</div>
<?php return ob_get_clean();
});
下方的Insertion中,Insert Method选择Auto Insert,Localtion选择Run Anywhere
由于该代码通过自定义 shortcode 输出内容, 实际渲染位置由编辑器中的 shortcode 决定, 而非固定挂载在某个模板或 Hook 上。
选择「Auto Insert + Run Anywhere」可确保:
- shortcode 在前台被正常解析
- 不受页面类型、模板或 WooCommerce Hook 限制
- 在商品描述、页面内容或自定义区块中均可使用
因此使用 Run Anywhere 以保证最大兼容性与可复用性。
完成后点击右上角的Update,并激活该简码。
在前台显示表格
返回商品修改的页面,在产品描述里输入刚才自定义的简码,输入以下简码: [你的简码]
如果你想修改表格的颜色,只需在 WPCode 里改一次代码,全站几百个产品的表格都会同步变漂亮。一旦设置好,后续录入产品的人员完全不需要懂代码,只需要“填空”即可。