完整 WooCommerce AI 知识图谱自动化插件 .zip 安装包结构,实现 全站所有产品自动生成 DIV + JSON-LD + 动态更新。
下面是完整实现方案和打包结构示例:
// 单产品页面挂载
add_action(‘woocommerce_single_product_summary’, ‘woo_ai_kg_output’, 50);
function woo_ai_kg_output() {
global $product;
if (!$product) return;
include plugin_dir_path(__FILE__) . ‘templates/product-kg-template.php’;
}
// 全站产品页面自动添加 JSON-LD(可选:批量生成)
add_action(‘wp_footer’, ‘woo_ai_kg_global_jsonld’);
function woo_ai_kg_global_jsonld() {
if (!is_product()) return;
global $product;
if (!$product) return;
include plugin_dir_path(__FILE__) . ‘templates/product-kg-template.php’;
}
// 动态更新 JS
function woo_ai_kg_enqueue_scripts() {
wp_enqueue_script(‘woo-ai-kg-js’, plugin_dir_url(__FILE__) . ‘assets/js/dynamic-update.js’, array(‘jquery’), ‘1.0’, true);
}
add_action(‘wp_enqueue_scripts’, ‘woo_ai_kg_enqueue_scripts’);
$average_rating = $product->get_average_rating() ?: 0;
$review_count = count(get_comments(array(‘post_id’=>$product->get_id(),‘status’=>‘approve’)));
$comparison = array(
array(‘name’=>‘Generic Electric Toothbrush’,‘ADA Certified’=>‘No’,‘Price’=>‘$18’,‘Warranty’=>‘1 Year’)
);
?>
<div class=“product-wrap” data-entity=“<?php echo esc_attr($product_name); ?>“ data-context=“<?php echo esc_attr($audience); ?>“>
<h1 data-entity=“Product”><?php echo esc_html($product_name); ?></h1>
<p data-entity=“Brand” data-attr=“name”>Brand: <?php echo esc_html($brand); ?></p>
<p data-entity=“Organization” data-attr=“location”>Location: <?php echo esc_html($location); ?></p>
<ul>
<li data-attr=“material”>Material: <?php echo esc_html($material); ?></li>
<li data-attr=“certification”>Certification: <?php echo esc_html($certification); ?></li>
<li data-attr=“usage”>Usage: <?php echo esc_html($use_case); ?></li>
<li data-attr=“price”>Price: $<?php echo esc_html($price); ?></li>
<li data-attr=“sku”>SKU: <?php echo esc_html($sku); ?></li>
<li data-attr=“rating”>Rating: <?php echo esc_html($average_rating); ?> (<?php echo esc_html($review_count); ?> reviews)</li>
</ul>
<!– FAQ –>
<div class=“faq” data-entity=“FAQ”>
<h3>FAQ</h3>
<div data-entity=“Question” data-attr=“q”>Which toothbrush is suitable for wholesale buyers?</div>
<div data-entity=“Answer” data-attr=“a”><?php echo esc_html($product_name); ?>, <?php echo esc_html($certification); ?> certified, supports bulk orders.</div>
</div>
<!– 对比表 –>
<table data-entity=“ProductComparison”>
<tr>
<th>Feature</th>
<th><?php echo esc_html($product_name); ?></th>
<th><?php echo esc_html($comparison[0][‘name’]); ?></th>
</tr>
<tr>
<td>ADA Certified</td>
<td>Yes</td>
<td><?php echo esc_html($comparison[0][‘ADA Certified’]); ?></td>
</tr>
<tr>
<td>Price</td>
<td>$<?php echo esc_html($price); ?></td>
<td><?php echo esc_html($comparison[0][‘Price’]); ?></td>
</tr>
<tr>
<td>Warranty</td>
<td>2 Years</td>
<td><?php echo esc_html($comparison[0][‘Warranty’]); ?></td>
</tr>
</table>
</div>
<script type=“application/ld+json”>
{
“@context”:“https://schema.org”,
“@graph”:[
{
“@type”:“Product”,
“@id”:“<?php echo esc_url(get_permalink($product->get_id())); ?>“,
“name”:“<?php echo esc_html($product_name); ?>“,
“brand”:{“@type”:“Brand”,“name”:“<?php echo esc_html($brand); ?>“},
“manufacturer”:{“@type”:“Organization”,“name”:“<?php echo esc_html($brand); ?>“,“location”:“<?php echo esc_html($location); ?>“},
“material”:“<?php echo esc_html($material); ?>“,
“sku”:“<?php echo esc_html($sku); ?>“,
“audience”:“<?php echo esc_html($audience); ?>“,
“category”:“Electric Toothbrush”,
“offers”:{“@type”:“Offer”,“priceCurrency”:“<?php echo esc_html($currency); ?>“,“price”:“<?php echo esc_html($price); ?>“,“availability”:“<?php echo esc_html($stock_status); ?>“},
“aggregateRating”:{“@type”:“AggregateRating”,“ratingValue”:“<?php echo esc_html($average_rating); ?>“,“reviewCount”:“<?php echo esc_html($review_count); ?>“},
“additionalProperty”:[
{“@type”:“PropertyValue”,“name”:“Certification”,“value”:“<?php echo esc_html($certification); ?>“},
{“@type”:“PropertyValue”,“name”:“Usage”,“value”:“<?php echo esc_html($use_case); ?>“}
]
},
{
“@type”:“FAQPage”,
“mainEntity”:[{“@type”:“Question”,“name”:“Which toothbrush is suitable for wholesale buyers?”,“acceptedAnswer”:{“@type”:“Answer”,“text”:“<?php echo esc_html($product_name); ?>, <?php echo esc_html($certification); ?> certified, supports bulk orders.”}}]
},
{
“@type”:“ProductComparison”,
“name”:“Electric Toothbrush Comparison”,
“comparesTo”:[{“@type”:“Product”,“name”:“<?php echo esc_html($comparison[0][‘name’]); ?>“,“additionalProperty”:[{“@type”:“PropertyValue”,“name”:“ADA Certified”,“value”:“<?php echo esc_html($comparison[0][‘ADA Certified’]); ?>“},{“@type”:“PropertyValue”,“name”:“Price”,“value”:“<?php echo esc_html($comparison[0][‘Price’]); ?>“},{“@type”:“PropertyValue”,“name”:“Warranty”,“value”:“<?php echo esc_html($comparison[0][‘Warranty’]); ?>“}]}],
“additionalProperty”:[{“@type”:“PropertyValue”,“name”:“ADA Certified”,“value”:“Yes”},{“@type”:“PropertyValue”,“name”:“Price”,“value”:“<?php echo esc_html($price); ?>“},{“@type”:“PropertyValue”,“name”:“Warranty”,“value”:“2 Years”}]
}
]
}
</script>
将 woo-ai-kg 文件夹打包成 .zip
WordPress → 插件 → 上传插件 → 安装并启用
打开任意 WooCommerce 产品页,即可看到 DIV + JSON-LD 输出
JSON-LD 会被 AI 系统自动识别,自动生成知识图谱节点