概要
woocommerce_before_shop_loop
は、WooCommerceの製品リスト(ショップページ)のループの前に実行されるアクションフックです。このフックは、ショップページや商品アーカイブページで特定のカスタマイズや機能を実装する際によく使用されます。たとえば、製品のフィルター、バナーの表示、カスタムメッセージの追加などに利用されます。以下は、このアクションがよく使用される場面です:
- 製品フィルターやソートオプションの追加
- 特定のプロモーションバナーの表示
- カスタムメッセージや通知の追加
- ビジュアルデザインの変更
- ウィジェットエリアの挿入
- スクリプトやスタイルシートの追加
構文
add_action( 'woocommerce_before_shop_loop', 'your_function_name' );
パラメータ
このアクションは、特定のパラメータを持たず、主に関数のコールバックを実行するためのものです。
戻り値
このアクションは戻り値を持たず、副作用を利用してカスタマイズを実現します。
使用可能なバージョン
- WooCommerce: 3.0.0 以降
- WordPress: 4.0 以降
サンプルコード
サンプルコード1: カスタムバナーの表示
function display_custom_banner() {
echo '<div class="custom-banner">新しいプロモーション、今すぐチェック!</div>';
}
add_action( 'woocommerce_before_shop_loop', 'display_custom_banner' );
このコードは、ショップページの上部に「新しいプロモーション、今すぐチェック!」というバナーを表示します。
サンプルコード2: 製品フィルターの追加
function add_product_filter() {
echo '<div class="product-filter">製品フィルターをここに配置</div>';
}
add_action( 'woocommerce_before_shop_loop', 'add_product_filter' );
このコードは、ショップページの上部にカスタム製品フィルターのためのセクションを追加します。
サンプルコード3: カスタムメッセージの表示
function show_custom_message() {
if ( is_shop() ) {
echo '<p class="custom-message">特別割引中!お見逃しなく!</p>';
}
}
add_action( 'woocommerce_before_shop_loop', 'show_custom_message' );
このコードは、ショップページに特別割引のメッセージを表示します。
サンプルコード4: CSSスタイルの追加
function custom_css_for_shop() {
echo '<style>
.custom-banner { background-color: #ffd700; padding: 10px; text-align: center; }
</style>';
}
add_action( 'woocommerce_before_shop_loop', 'custom_css_for_shop' );
このコードは、ショップページの上部に表示されるバナーにスタイルを適用します。
サンプルコード5: ソートオプションの追加
function add_sorting_options() {
echo '<select class="sorting-options">
<option value="default">デフォルトの並び替え</option>
<option value="price">価格の安い順</option>
<option value="popularity">人気商品</option>
</select>';
}
add_action( 'woocommerce_before_shop_loop', 'add_sorting_options' );
このコードは、ショップページの上部に商品ソートオプションを追加します。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |