概要
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関数を使って安全にサニタイズします。