プラグインWooCommerceのwoocommerce_update_option_sanitize_title$OPTION[type]フィルタの使用方法・解説

概要

woocommerce_update_option_sanitize_title$OPTION[type]は、WooCommerceプラグインにおいて特定のオプションのスラッグ(URLに適した形式)をサニタイズするために使用されるフィルタです。このフィルタを使用することで、オプションのスラッグが正しい形式に変換され、不正な文字を除去したり、適切なプレフィックスを追加したりすることができます。

主な使用ケースには以下のようなものがあります:
1. カスタムオプションの追加時のスラッグ生成
2. プロダクト属性のスラッグのフォーマット
3. ページスラッグの標準化
4. カスタムフィールドの一貫性の確保
5. 商品カテゴリーやタグのスラッグの調整
6. APIエンドポイントのスラッグ設定

構文

add_filter('woocommerce_update_option_sanitize_title$OPTION[type]', 'callback_function', 10, 2);

パラメータ

  • $title (文字列): サニタイズの対象となるタイトル。
  • $option (配列): オプションの詳細が含まれる配列。

戻り値

  • サニタイズされたタイトル(文字列)。

対応するWooCommerceバージョン

  • WooCommerce 4.0以上

対応するWordPressバージョン

  • WordPress 5.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

add_filter('woocommerce_update_option_sanitize_title$option[custom_title]', 'custom_sanitize_title', 10, 2);

function custom_sanitize_title($title, $option) {
    return strtolower(trim($title));
}

説明: このコードは、カスタムオプションのタイトルを小文字に変換します。

サンプルコード2

add_filter('woocommerce_update_option_sanitize_title$option[product_category_slug]', 'sanitize_product_category_slug', 10, 2);

function sanitize_product_category_slug($title, $option) {
    return preg_replace('/[^a-z0-9-]+/', '-', strtolower(trim($title)));
}

説明: プロダクトカテゴリーのスラッグを小文字にし、無効な文字をハイフンに置換します。

サンプルコード3

add_filter('woocommerce_update_option_sanitize_title$option[tag_slug]', 'custom_tag_slug', 10, 2);

function custom_tag_slug($title, $option) {
    return preg_replace('/s+/', '-', $title);
}

説明: タグのスラッグにおいて、空白をハイフンに置換します。

サンプルコード4

add_filter('woocommerce_update_option_sanitize_title$option[custom_field_slug]', 'clean_custom_field_slug', 10, 2);

function clean_custom_field_slug($title, $option) {
    return preg_replace('/[^a-zA-Z0-9_-]/', '', $title);
}

説明: カスタムフィールドのスラッグから無効な文字をすべて削除します。

サンプルコード5

add_filter('woocommerce_update_option_sanitize_title$option[api_endpoint_slug]', 'api_slug_sanitizer', 10, 2);

function api_slug_sanitizer($title, $option) {
    return sanitize_title($title);
}

説明: APIエンドポイントのスラッグをWordPressのsanitize_title関数を使って安全にサニタイズします。

この関数について質問する


上の計算式の答えを入力してください