概要
sanitize_taxonomy_name
関数は、WordPressのWooCommerceプラグインにおいて、タクソノミー名(用語名)の不正な文字や空白を取り除いて、適切な形式に整形するための関数です。この関数は、タクソノミーの登録や管理、カスタム用語の作成時に特に重要です。以下に、sanitize_taxonomy_name
がよく使われる状況の例を示します。
- タクソノミーの登録時
- カスタム用語の作成時
- 投稿やページに関連付けられたタクソノミーのフィルタリング
- タクソノミー名のバリデーション
- UIでのタクソノミー表示の際の整形
- REST APIを通じたタクソノミー名の操作
構文
sanitize_taxonomy_name( string $taxonomy_name )
パラメータ
- $taxonomy_name (string): サニタイズ対象となるタクソノミー名。
戻り値
- (string): サニタイズ後のタクソノミー名。
互換性
- WooCommerceバージョン: WooCommerce 3.0以降
- WordPressバージョン: WordPress 4.7以降
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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: タクソノミー名のサニタイズ
このサンプルコードでは、タクソノミー名をサニタイズし、結果を出力します。
$taxonomy_name = "example taxonomy";
$sanitized_name = sanitize_taxonomy_name($taxonomy_name);
echo $sanitized_name; // 表示: example_taxonomy
サンプル2: カスタムタクソノミーの登録
このコードは、新しいカスタムタクソノミーを登録する際にタクソノミー名をサニタイズしています。
function create_custom_taxonomy() {
$taxonomy_name = "custom taxonomy";
$sanitized_name = sanitize_taxonomy_name($taxonomy_name);
register_taxonomy($sanitized_name, 'post', array(
'label' => __('Custom Taxonomies'),
'rewrite' => array('slug' => $sanitized_name)
));
}
add_action('init', 'create_custom_taxonomy');
サンプル3: AJAXリクエストでのタクソノミー名の処理
AJAXリクエストで送信されるタクソノミー名をサニタイズして処理するサンプルです。
add_action('wp_ajax_my_custom_action', 'my_custom_function');
function my_custom_function() {
$taxonomy_name = $_POST['taxonomy_name'];
$sanitized_name = sanitize_taxonomy_name($taxonomy_name);
// サニタイズ後の処理をここに書く
}
サンプル4: タクソノミー名のバリデーション
タクソノミー名が有効かどうかを確認するためにサニタイズする例です。
$taxonomy_name = "Invalid Tax@nomy!";
$sanitized_name = sanitize_taxonomy_name($taxonomy_name);
if ($sanitized_name !== $taxonomy_name) {
echo "Invalid name was corrected: " . $sanitized_name;
}
サンプル5: REST APIエンドポイントでの使用
REST APIを通じてタクソノミー名を受け取る際にサニタイズします。
add_action('rest_api_init', function() {
register_rest_route('custom/v1', '/taxonomy', array(
'methods' => 'POST',
'callback' => function ($request) {
$taxonomy_name = $request['taxonomy_name'];
$sanitized_name = sanitize_taxonomy_name($taxonomy_name);
return $sanitized_name;
}
));
});