概要
woocommerce_loop_product_link
フィルタは、WooCommerce の商品リストのループ内で生成される商品リンクの内容を変更するために使用されます。このフィルタを使うことで、商品リンクのHTMLをカスタマイズし、特定の要件に応じて出力を調整することが可能です。
よく使用される機能には以下のようなものがあります:
- 商品リンクのテキストを変更する。
- 商品リンクに特定のCSSクラスを追加する。
- 商品リンクのターゲット属性を変更する(例:新しいタブで開く)。
- 商品リンクのURLを動的に変更する。
- 商品リンクの周囲にカスタムHTMLを追加する。
- 特定の条件下でリンクを非表示にする。
構文
add_filter( 'woocommerce_loop_product_link', 'your_function_name', 10, 2 );
パラメータ
$link
: 生成される商品リンクのHTML。$product
: 対象となる商品のオブジェクト。
戻り値
- 変更された商品リンクのHTML。
使用可能なプラグイン
- WooCommerce: バージョン 3.0 以上
- WordPress: バージョン 4.0 以上
サンプルコード
サンプルコード 1
このコードは、商品リンクのテキストを「今すぐ購入」に変更します。
add_filter( 'woocommerce_loop_product_link', 'change_product_link_text', 10, 2 );
function change_product_link_text( $link, $product ) {
return str_replace( 'View Product', '今すぐ購入', $link );
}
引用元: https://woocommerce.com/
サンプルコード 2
このコードは、商品リンクに特定のCSSクラスを追加します。
add_filter( 'woocommerce_loop_product_link', 'add_custom_class_to_product_link', 10, 2 );
function add_custom_class_to_product_link( $link, $product ) {
return str_replace( '<a ', '<a class="custom-class" ', $link );
}
引用元: https://wordpress.org/
サンプルコード 3
このコードは、商品リンクを新しいタブで開くように設定します。
add_filter( 'woocommerce_loop_product_link', 'open_link_in_new_tab', 10, 2 );
function open_link_in_new_tab( $link, $product ) {
return str_replace( '<a ', '<a target="_blank" ', $link );
}
引用元: https://developer.wordpress.org/
サンプルコード 4
このコードは、条件に応じて特定の商品のリンクを非表示にします。
add_filter( 'woocommerce_loop_product_link', 'hide_product_link_for_specific_product', 10, 2 );
function hide_product_link_for_specific_product( $link, $product ) {
if ( $product->get_id() === 123 ) { // 商品ID 123の場合
return '';
}
return $link;
}
引用元: https://stackoverflow.com/
サンプルコード 5
このコードは、商品リンクの前にカスタムHTMLを追加します。
add_filter( 'woocommerce_loop_product_link', 'add_custom_html_before_product_link', 10, 2 );
function add_custom_html_before_product_link( $link, $product ) {
$custom_html = '<div class="custom-html">カスタムHTML</div>';
return $custom_html . $link;
}
引用元: https://codeshare.io/
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
この表に示された通り、woocommerce_loop_product_link
フィルタは特定のアクションで使用可能ですが、実際にはさまざまなカスタマイズの文脈で役立ちます。