wordpress - 如何在 WooCommerce 中的产品结构化数据 (Schema.org) 中添加产品图像和描述
问题描述
我正在使用它为每个产品的架构添加一个自定义字段
add_filter( 'woocommerce_structured_data_product', function( $markup, $product ) {
if( is_product() ) {
$markup['brand'] = get_post_meta(get_the_ID(), 'brand', TRUE);
}
我还需要将产品的图片 url 和描述添加到架构中,我该如何实现呢?
解决方案
该woocommerce_structured_data_product
钩子已经在产品页面上运行,因此您不需要is_product()
检查。
如文档中所述,它在woocommerce_single_product_summary
钩子内执行。
您可以像这样覆盖结构化数据:
// overwrites structured data
add_filter( 'woocommerce_structured_data_product', 'set_structured_data', 99, 2 );
function set_structured_data( $markup, $product ) {
$markup['brand'] = get_post_meta( $product->get_id(), 'brand', true );
$markup['image'] = wp_get_attachment_url( $product->get_image_id() );
$markup['description'] = wp_strip_all_tags( $product->get_short_description() ? $product->get_short_description() : $product->get_description() );
return $markup;
}
该代码已经过测试并且可以工作。将它添加到您的活动主题的functions.php。
在产品页面上,找到<script type="application/ld+json">
元素,它应该看起来像这样:
然后检查brand
,image
和description
字段是否有价值。
您可以在此处找到要添加到产品结构化数据的完整字段列表:
如果要检查结构化数据的有效性, 可以在Rich Results Test - Google Search Console页面的代码部分输入整个脚本(而不是产品页面 url)。
一些有用的链接:
相关答案:
推荐阅读
- php - wordpress 重力表单自动填充/选择当前页面标题
- php - 如何缓存远程视频
- c++ - 将无符号整数存储到 char 数组和宽字符数组中所需的空间
- node.js - 当套接字重新连接时,如何让 socket.io 服务器向特定套接字重新发送消息?
- javascript - 如何通过引用复制对象属性
- python - 错误值错误:日期超出月份的范围
- ruby - 如何访问/解决 Logstash 上的嵌套字段
- ios - 如何在 iOS 中将 Material RadioButton 用作从右到左?
- android - 带有 Dagger Hilt 的 Android 动态功能模块
- r - 计算多个条件下的平均值(R 中的贸易数据协调)