概要
wc_product_post_type_link_product_cat
フィルタは、WooCommerceで製品のカテゴリリンクをカスタマイズするために使用されます。このフィルタを活用することで、製品カテゴリのパーマリンクを変更したり、特定の条件に基づいたカスタムURL生成を行ったりすることが可能です。以下は、このフィルタがよく使われるシチュエーションの例です。
- SEOに最適化されたURL構造の実装
- 外部サイトとの連携のための特別なリンク形式の生成
- 特定の条件に基づく動的なリンクの生成
- 商品のプロモーションのためのカスタムURL構造の設定
- カテゴリごとの異なるスタイリングを実現するためのリンク修正
- アフィリエイトマーケティング用のトラッキングURLの生成
構文
add_filter('wc_product_post_type_link_product_cat', 'カスタム関数名', 10, 2);
パラメータ
string $link
– デフォルトの製品カテゴリリンク。WP_Term $term
– 対象の製品カテゴリのWP_Termオブジェクト。
戻り値
string
– 修正された製品カテゴリリンク。
使用可能なプラグインバージョン
- WooCommerce: 3.0以上
- WordPress: 4.0以上
サンプルコード
サンプルコード 1: カテゴリリンクにカスタムパラメータを追加する
add_filter('wc_product_post_type_link_product_cat', 'add_custom_parameter_to_product_cat_link', 10, 2);
function add_custom_parameter_to_product_cat_link($link, $term) {
return $link . '?source=custom';
}
このコードでは、製品カテゴリリンクにカスタムパラメータを追加しています。これにより、トラッキングなどに利用できます。
サンプルコード 2: 言語に基づいたカテゴリリンクを生成する
add_filter('wc_product_post_type_link_product_cat', 'custom_language_product_cat_link', 10, 2);
function custom_language_product_cat_link($link, $term) {
$lang = get_query_var('lang');
return str_replace('/category/', "/$lang/category/", $link);
}
このコードは、URLの中の「category」を現在の言語に基づいて修正します。多言語サイトに有用です。
サンプルコード 3: 特定のカテゴリだけに異なるリンク形式を適用する
add_filter('wc_product_post_type_link_product_cat', 'modify_specific_category_link', 10, 2);
function modify_specific_category_link($link, $term) {
if ($term->slug === 'special-category') {
return '/special/' . $term->slug;
}
return $link;
}
このコードは、スラッグが「special-category」のカテゴリに特別なリンク形式を適用します。
サンプルコード 4: 他のサイトにリダイレクトするリンクを生成する
add_filter('wc_product_post_type_link_product_cat', 'redirect_category_to_external_link', 10, 2);
function redirect_category_to_external_link($link, $term) {
if ($term->slug === 'external') {
return 'https://externalwebsite.com/category/' . $term->slug;
}
return $link;
}
このサンプルでは、「external」スラッグのカテゴリを外部サイトにリダイレクトさせます。
サンプルコード 5: プロモーションのための特別なスラッグを使用する
add_filter('wc_product_post_type_link_product_cat', 'promotional_category_slug', 10, 2);
function promotional_category_slug($link, $term) {
return '/promo/' . $term->slug;
}
このコードは、すべての製品カテゴリリンクを「promo」スラッグを含む形式に変換します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |