プラグインWooCommerceのsanitize_taxonomy_name関数の使用方法・解説

概要

sanitize_taxonomy_name 関数は、WordPressのWooCommerceプラグインにおいて、タクソノミー名(用語名)の不正な文字や空白を取り除いて、適切な形式に整形するための関数です。この関数は、タクソノミーの登録や管理、カスタム用語の作成時に特に重要です。以下に、sanitize_taxonomy_nameがよく使われる状況の例を示します。

  1. タクソノミーの登録時
  2. カスタム用語の作成時
  3. 投稿やページに関連付けられたタクソノミーのフィルタリング
  4. タクソノミー名のバリデーション
  5. UIでのタクソノミー表示の際の整形
  6. 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;
        }
    ));
});

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


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