Yoast 面包屑在导入的 WooCommerce 产品上无法正确显示

Yoast breadcrumbs not displaying correctly on imported WooCommerce products

我正在通过 WebToffee 为 WooCommerce 导入产品,然后我有一个功能可以从 API 中提取数据并填充每个导入产品中的数据。

一切正常,除了 Yoast 面包屑在我查看产品时没有正确显示。前端的面包屑会说例如 Shop » Product Name 而不是完整类别和子类别面包屑路径。

我可以成功让面包屑正确显示的唯一方法是手动编辑产品并单击更新,然后正确显示,如:

Shop » Workwear » High Visibility » Hi Vis Polo Shirts & T-Shirts » Product Name

这很好,但我将一次性导入数千种产品,因此我需要一个编程解决方案来添加到我的功能中,这将使面包屑导航在前端正确显示。

到目前为止我尝试了什么

在我的函数中,我尝试在每个产品中填充以下自定义元数据:

_yoast_wpseo_metadesc
_yoast_wpseo_title
_yoast_wpseo_primary_product_cat
_yoast_wpseo_content_score
_yoast_wpseo_estimated-reading-time-minutes

但不幸的是,以上所有设置似乎都不会影响面包屑的显示。

我也尝试在导入和创建产品后清除 wp-admin 中的产品瞬变,但这并没有解决问题。

关于如何让它工作的任何想法?有没有一个函数我可以 运行 作为 WC-Product 对象的一部分,它会触发面包屑自行排序,就像在编辑产品中手动单击更新时一样?

如有任何帮助,我们将不胜感激

嗯,这真的取决于您如何导入产品。目前,当每个产品插入时,SEO Yoast meta 并未在数据库中设置,因此每次您需要编辑和更新该产品时。

自定义元数据也可能不适用于您的情况,因为您没有在其他 Yoast table 中插入数据,例如 _yoast_indexable

能否向我们展示一下您是如何进口产品的,以便我们为您提供帮助?

以防万一它能帮助将来遇到同样问题的其他人,问题出在我的代码上,它在最后一次执行 wp_update_post 后修改了类别和 Yoast 主要类别。

简单地 运行 wp_update_post( $product_id ) 在以编程方式更新类别/主要类别后修复了格式错误的面包屑问题。