在Woocommerce单一产品页面中,我试图排除任何以“我”字符开头的产品出现在相关产品中。我在single-product/related.php
模板文件中尝试了以下内容:
foreach($products as $product){
if (substr($product->post_title, 0, 1) === 'I') {
unset($product);
}
}
但我仍然遗漏了一些东西,因为它不起作用。
如何从相关产品中排除标题以"I"
字母开头的产品ID?
答案 0 :(得分:0)
以下是一个小型自定义附加功能,该功能将从单个产品页面中的相关产品中排除产品ID,哪个标题以字母 "I"
开头。
我使用非常轻松的SQL查询来排除那些产品ID。
代码:
add_filter( 'woocommerce_related_products', 'exclude_ids_from_related_products', 10, 3 );
function exclude_ids_from_related_products( $related_posts, $product_id, $query_args ){
global $wpdb;
$starting_by = "I"; // Excluding product title starting with…
// Get all product IDs starting with "I" in an array to be excluded
$excluded_ids = $wpdb->get_col( "
SELECT ID FROM {$wpdb->prefix}posts WHERE post_type LIKE 'product'
AND post_status LIKE 'publish' AND post_title LIKE '$starting_by%'
" );
// Return an array of related product IDs without excluded product IDs
return array_diff ( $related_posts, $excluded_ids );
}
代码进入活动子主题(或活动主题)的function.php文件。经过测试并正常工作。