概要
woocommerce_product_related_posts_relate_by_tag
フィルタは、WooCommerceで関連商品を表示する際に、タグに基づいて関連商品を取得する方法をカスタマイズするために使用されます。このフィルタは、特定の商品の関連商品をカスタマイズしたい場合や、特定の条件に基づいて商品を絞り込みたい場合に便利です。また、以下のような機能を実装する際によく利用されます:
- 特定のタグを持つ商品の関連付けの改善
- 商品の表示順位をカスタマイズ
- 記載されたタグの数に基づく関連商品のフィルタリング
- タグによる関連商品のグルーピング
- ユーザーのニーズに合った商品提案の提供
- 商品の閲覧履歴に基づいた関連商品の調整
構文
add_filter( 'woocommerce_product_related_posts_relate_by_tag', 'カスタム関数名', 10, 2 );
パラメータ
$related_ids
: 関連商品IDの配列。$product_id
: 現在の商品ID。
戻り値
このフィルタは、関連商品IDの配列を返します。
使用可能なバージョン
- WooCommerce: すべてのバージョンで利用可能
- WordPress: 5.0以上が推奨
サンプルコード
サンプルコード 1
add_filter( 'woocommerce_product_related_posts_relate_by_tag', 'custom_related_products_by_tag', 10, 2 );
function custom_related_products_by_tag( $related_ids, $product_id ) {
// 特定のタグを持つ商品だけを関連商品として返す
$product_tags = wp_get_post_terms( $product_id, 'product_tag', array( 'fields' => 'ids' ) );
return array_intersect( $related_ids, $product_tags );
}
このコードは、現在の商品IDに関連するタグと同じタグを持つ関連商品を返します。
サンプルコード 2
add_filter( 'woocommerce_product_related_posts_relate_by_tag', 'filter_related_products_by_min_price', 10, 2 );
function filter_related_products_by_min_price( $related_ids, $product_id ) {
// 価格が100未満の関連商品をフィルタリング
$filtered_ids = array();
foreach ( $related_ids as $related_id ) {
if ( get_post_meta( $related_id, '_price', true ) >= 100 ) {
$filtered_ids[] = $related_id;
}
}
return $filtered_ids;
}
このコードは、関連商品の中から、価格が100未満のものを除外します。
サンプルコード 3
add_filter( 'woocommerce_product_related_posts_relate_by_tag', 'limit_related_products_count', 10, 2 );
function limit_related_products_count( $related_ids, $product_id ) {
// 関連商品を最大5つに制限
return array_slice( $related_ids, 0, 5 );
}
このコードは、関連商品を最大5つまでに制限します。
サンプルコード 4
add_filter( 'woocommerce_product_related_posts_relate_by_tag', 'custom_related_sort_order', 10, 2 );
function custom_related_sort_order( $related_ids, $product_id ) {
// 関連商品をランダムに並べ替え
shuffle( $related_ids );
return $related_ids;
}
このコードは、関連商品をランダムな順番で表示します。
サンプルコード 5
add_filter( 'woocommerce_product_related_posts_relate_by_tag', 'exclude_specific_related_product', 10, 2 );
function exclude_specific_related_product( $related_ids, $product_id ) {
// 特定の商品IDを関連商品から除外
$excluded_product_id = 123; // 除外する商品ID
return array_diff( $related_ids, array( $excluded_product_id ) );
}
このコードは、特定の商品IDを関連商品リストから除外します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |