概要
woocommerce_product_post_type_link_parent_category_only
フィルタは、WooCommerce プラグインにおいて製品のパーマリンクを操作するために使用されます。このフィルタを使うことで、製品ページのURLを親カテゴリーに基づいて制御し、SEOやサイト構成を最適化することができます。特にこのフィルタは以下のような機能に役立ちます。
- SEO最適化のためのカスタムURL構造
- カテゴリーページとの整合性を取るためのリンク修正
- クロールの効率を向上させる
- ユーザーエクスペリエンスを向上させる
- 特定のマーケティングキャンペーンに対応するためのURL変更
- アーカイブページのURLを整理する
構文
add_filter('woocommerce_product_post_type_link_parent_category_only', 'your_function_name', 10, 2);
パラメータ
$permalink
(string): 生成された製品のパーマリンク$product
(WC_Product): 製品オブジェクト
戻り値
- (string): 修正されたパーマリンク
使用可能なバージョン
- WooCommerce バージョン: すべてのバージョンで使用可能
- WordPress バージョン: すべてのバージョンで使用可能
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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
add_filter('woocommerce_product_post_type_link_parent_category_only', function($permalink, $product) {
$terms = get_the_terms($product->get_id(), 'product_cat');
if ($terms && !is_wp_error($terms)) {
$parent_term = $terms[0];
return str_replace('%product_cat%', $parent_term->slug, $permalink);
}
return $permalink;
});
このコードは製品のパーマリンクを親カテゴリーのスラッグに基づいて修正します。%product_cat%
プレースホルダーを親カテゴリーのスラッグに置き換えます。
サンプルコード2
add_filter('woocommerce_product_post_type_link_parent_category_only', function($permalink, $product) {
$cat = get_queried_object();
if (is_product_category() && $cat) {
return home_url('/' . $cat->slug . '/' . $product->get_slug() . '/');
}
return $permalink;
});
このコードでは、製品が特定のカテゴリー内にあるとき、そのカテゴリーのスラッグを使用してパーマリンクを生成します。
サンプルコード3
add_filter('woocommerce_product_post_type_link_parent_category_only', function($permalink, $product) {
$category = wp_get_post_terms($product->get_id(), 'product_cat', array('orderby' => 'name', 'order' => 'ASC'));
if ($category) {
return home_url('/shop/' . $category[0]->slug . '/' . $product->get_slug() . '/');
}
return $permalink;
});
このコードは、製品のパーマリンクを「/shop/」のプレフィックスと製品カテゴリーのスラッグを使って生成します。
サンプルコード4
add_filter('woocommerce_product_post_type_link_parent_category_only', function($permalink, $product) {
$terms = get_the_terms($product->get_id(), 'product_cat');
if (!empty($terms) && !is_wp_error($terms)) {
$term_slugs = wp_list_pluck($terms, 'slug');
return home_url('/' . implode('/', $term_slugs) . '/' . $product->get_slug() . '/');
}
return $permalink;
});
このコードは、すべての関連するカテゴリーのスラッグを連結してパーマリンクを生成します。それにより、階層的なURLが作成されます。
サンプルコード5
add_filter('woocommerce_product_post_type_link_parent_category_only', function($permalink, $product) {
$category_id = get_post_meta($product->get_id(), '_product_category_id', true);
if ($category_id) {
$category = get_term($category_id, 'product_cat');
return home_url('/category/' . $category->slug . '/' . $product->get_slug() . '/');
}
return $permalink;
});
このコードでは、製品のメタデータからカテゴリーIDを取得し、それに基づいてパーマリンクを生成します。特定のカテゴリーを明示的に示すことができます。
引用元ページ:
1. https://docs.woocommerce.com/
2. https://developer.wordpress.org/reference/hooks/
3. https://woocommerce.com/document/woocommerce-rest-api/