【问题标题】:Wordpress Filtering Woocommerce Structured DataWordpress 过滤 Woocommerce 结构化数据
【发布时间】:2021-06-22 11:04:06
【问题描述】:

我正在计算一个过滤器,但无法计算:)

只想在分类法的 CollectionPage 中使用 og:image 值更改 PrimaryImageOfPage 值。

可能是我必须使用woocommerce_structured_data_product过滤here并寻找图像$markup['image'] = $image;

我创建了一些过滤器,但我猜不是woocommerce_structured_data_product

其中一个是这样的,但它......不。

add_filter( 'woocommerce_structured_data_product', function( $markup ) {
    $markup['image'] = ('rank_math/opengraph/{$network}/image');
    return $markup;
});

我做错了什么?我整天都在做这件事-_-

【问题讨论】:

  • 你把上面的代码sn-p放在哪里了?过滤器被调用了吗?
  • @ZoliSzabó 我已经把它放在了function.php中
  • 被调用了吗?如果您在其中输入 die() 或类似名称会怎样?
  • 快死了 xd - 没什么,我创建了这个过滤器但不能正常工作,这仅适用于产品,不适用于分类法
  • 也试试woocommerce_structured_data_context 过滤器。

标签: php json wordpress woocommerce


【解决方案1】:

如果您检查类WC_Structured_Data 的代码,您会看到woocommerce_structured_data_product 过滤器在函数generate_product_data 内部执行

WC 类的完整源代码WC_Structured_Data : https://github.com/woocommerce/woocommerce/blob/b88b868ab8919b7c854173098b7d6d4ab227f9ee/includes/class-wc-structured-data.php

$this->set_data( apply_filters( 'woocommerce_structured_data_product', $markup, $product ) );

并且generate_product_data函数在动作woocommerce_single_product_summary上执行

add_action( 'woocommerce_single_product_summary', array( $this, 'generate_product_data' ), 60 );

因此,您的代码仅适用于产品单页,而不适用于归档/列表页面,例如分类页面。
您想要实现的功能在 WC 中开箱即用是不可行的,您需要自己定制。

从逻辑上讲,单个产品页面上的结构化数据是可行的,因为只有一个产品并且产品信息可用,另一方面,产品列表有多个产品(您可能需要根据需要考虑显示第一个产品的详细信息),所以它是模棱两可的,不适合 WC。

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 2022-01-22
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多