概要
list_product_cats関数は、WooCommerceプラグインにおいて製品カテゴリーのリストを表示するために特化した関数です。この関数は、特に次のような機能を実装する際によく利用されます。
- 商品ページでのカテゴリー表示
- 商品フィルターメニューの作成
- カテゴリー別のサイドバーウィジェットの生成
- カテゴリーアーカイブの表示
- SEO向けのカテゴリーリストの追加
- オンラインショップのナビゲーションメニューのカスタマイズ
構文
list_product_cats( $args );
パラメータ
$args(array) – 引数の配列。デフォルトは空で、表示するカテゴリーの設定を変更できます。
戻り値
- 返り値は、指定されたカテゴリーのリストをHTML形式で返します。
使用可能なプラグインWooCommerceのバージョン
- WooCommerce 3.0以降
ワードプレスのバージョン
- WordPress 4.0以降
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| 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 |
サンプルコード
サンプルコード1: 商品カテゴリーのリスト表示
<?php
function display_product_categories() {
echo '<h2>商品カテゴリー</h2>';
echo '<ul>';
list_product_cats();
echo '</ul>';
}
add_action('woocommerce_before_main_content', 'display_product_categories');
このサンプルコードは、WooCommerceのメインコンテンツの前に商品カテゴリーのリストを表示するものです。woocommerce_before_main_contentというフックを使用しています。
サンプルコード2: カスタム引数での表示
<?php
function custom_product_categories_list() {
$args = array(
'orderby' => 'name',
'order' => 'ASC',
);
list_product_cats($args);
}
add_action('woocommerce_after_main_content', 'custom_product_categories_list');
このコードは、商品カテゴリーを名前順で昇順に表示するための引数を設定し、woocommerce_after_main_contentフックを使用して表示します。
サンプルコード3: ウィジェットへのカテゴリー追加
<?php
function add_product_cat_to_widget() {
echo '<div class="widget">';
echo '<h3>商品カテゴリー</h3>';
list_product_cats();
echo '</div>';
}
add_action('widgets_init', 'add_product_cat_to_widget');
このサンプルは、ウィジェットエリアに商品カテゴリーリストを追加するものです。widgets_initフックを使っています。
サンプルコード4: カスタムメニューにカテゴリー追加
<?php
function add_product_categories_to_menu($items, $args) {
if( $args->theme_location == 'primary' ) {
$items .= '<li>' . list_product_cats() . '</li>';
}
return $items;
}
add_filter('wp_nav_menu_items', 'add_product_categories_to_menu', 10, 2);
このコードは、プライマリメニューに商品カテゴリーを追加するために、wp_nav_menu_itemsフィルターを利用しています。
サンプルコード5: 商品一覧ページでのカテゴリー表示
<?php
function show_categories_on_product_page() {
global $product;
echo '<div class="product-categories">';
echo 'この商品は次のカテゴリーに属します: ';
echo list_product_cats(array('include' => $product->get_category_ids()));
echo '</div>';
}
add_action('woocommerce_single_product_summary', 'show_categories_on_product_page', 25);
このサンプルは、シングル商品ページにその商品のカテゴリーを表示するためのものです。woocommerce_single_product_summaryフックを使っています。