wordpress - 在 wordpress 中按主要类别显示相关产品
问题描述
我有分配了两个类别的产品,我在类别选择下选择了每个产品的主要类别。
现在我想按主要产品显示相关产品。
我正在使用 yoast seo 插件。我在子主题 function.php 文件中添加了以下过滤器代码,但它不起作用。
// Alter related products query to pull items from Yoast Primary Category
add_filter( 'woocommerce_get_related_product_cat_terms', function( $terms, $product_id ) {
if ( function_exists( 'yoast_get_primary_term_id' ) ) {
$primary_term_product_id = yoast_get_primary_term_id( 'product_cat', $product_id );
if ( $primary_term_product_id ) {
return array( $primary_term_product_id );
}
}
return $terms;
}, 10, 2 );
请帮帮我,我该怎么做?
解决方案
过滤器应该没问题,问题是 Wordpress 中的相关产品使用瞬态缓存在数据库中。
瞬态可以在 wp_options 表中找到,其名称_transient_wc_related_[product_id]
和_transient_timeout_wc_related_[product_id]
.
为了立即看到过滤效果,您需要从数据库中删除它们。
以下 SQL 查询应该执行删除:
DELETE FROM wp_options WHERE option_name REGEXP '^_transient_timeout_wc_related_[0-9]*$|^_transient_wc_related_[0-9]*$'
删除后,wordpress 将使用更新的数据重新创建新的瞬态。
有关 Wordpress 瞬态的更多信息:
https ://developer.wordpress.org/apis/handbook/transients/
推荐阅读
- java - 对象数组没有合适的构造函数
- ethereum - web3 ABI 无法在以太坊主网上获得合约所有权
- node.js - 配置数据库时,连接详细信息不可用 Digital Ocean
- hangfire - 如何在 ASP.NET CORE Web API 中配置 Hangfire 以使用 postgresql 作为存储数据库?
- python - 如何从Django中另一个下拉列表的选定值填充下拉列表
- leaflet - 使用自定义控件在传单地图上绘制不同的对象
- tableau-api - 如何将 Tableau Redshift 连接从 dev 环境更改为 qa 环境?
- r - 如何在 R 中转换这些数据?
- c# - C#如何读/写外部控制台的IO
- reactjs - TypeError:无法读取未定义的属性(读取“onSnapshot”)