プラグインCustom Post Type UIのcptui_pre_save_taxonomyアクションの使用方法・解説

概要

cptui_pre_save_taxonomyアクションは、Custom Post Type UIプラグインにおいて、カスタムタクソノミーを保存する前に実行されます。このフックを利用することで、タクソノミーのデータを加工したり、バリデーションを行うことが可能です。以下に、よく使われる機能をいくつか挙げます。

  1. タクソノミーの設定のバリデーション
  2. タクソノミーのスラッグの自動生成
  3. カスタムフィールドの値を保存する前の処理
  4. セキュリティ対策としてのデータ検証
  5. タクソノミーの関係性の設定
  6. タクソノミーのデフォルト値の設定

使用可能なバージョン

  • Custom Post Type UIバージョン: 1.10.0以降
  • WordPressバージョン: 4.0以降

構文

add_action('cptui_pre_save_taxonomy', 'my_custom_taxonomy_save', 10, 2);

パラメータ

  • $taxonomy: 保存しようとしているタクソノミーの名前
  • $taxonomy_values: タクソノミーの設定値を含む配列

戻り値

戻り値は特にありませんが、タクソノミーの設定に加えた変更は、保存される設定に反映されます。

サンプルコード

サンプルコード1

add_action('cptui_pre_save_taxonomy', function($taxonomy, $taxonomy_values) {
    if (isset($taxonomy_values['labels']['name'])) {
        $taxonomy_values['labels']['name'] .= ' (Custom)';
    }
}, 10, 2);

このコードは、タクソノミーの名称に「(Custom)」を追加する機能を実装しています。これにより、ユーザーが認識しやすくなります。

サンプルコード2

add_action('cptui_pre_save_taxonomy', function($taxonomy, $taxonomy_values) {
    if (empty($taxonomy_values['public'])) {
        $taxonomy_values['public'] = 1; // デフォルトで公開に設定
    }
}, 10, 2);

このコードは、タクソノミーが公開されていない場合、自動的に公開に設定します。この強制機能により、タクソノミーが利用可能であることを保証します。

サンプルコード3

add_action('cptui_pre_save_taxonomy', function($taxonomy, $taxonomy_values) {
    // スラッグが指定されていない場合、デフォルトのスラッグを設定
    if (empty($taxonomy_values['rewrite']['slug'])) {
        $taxonomy_values['rewrite']['slug'] = sanitize_title($taxonomy_values['labels']['singular_name']);
    }
}, 10, 2);

これは、タクソノミーのスラッグが指定されていない場合、自動的に生成するコードです。タクソノミーの名前から安全なスラッグを作成します。

サンプルコード4

add_action('cptui_pre_save_taxonomy', function($taxonomy, $taxonomy_values) {
    // タクソノミー名が短すぎる場合、エラーメッセージを表示
    if (strlen($taxonomy_values['labels']['name']) < 3) {
        add_settings_error('cptui', 'taxonomy_name_error', 'タクソノミー名は3文字以上でなければなりません。');
    }
}, 10, 2);

このコードは、タクソノミーの名称が3文字以上であることを確認し、短すぎる場合にはエラーメッセージを表示します。

サンプルコード5

add_action('cptui_pre_save_taxonomy', function($taxonomy, $taxonomy_values) {
    // 特定のタクソノミーの場合、カスタムフィールドを追加する処理
    if ($taxonomy === 'custom_taxonomy') {
        // ここにカスタムフィールドの処理を書く
    }
}, 10, 2);

このサンプルは、特定のタクソノミーに対してカスタムフィールドを処理するための準備を行うコードです。条件に基づいて追加のロジックを組み込むことができます。

この関数のアクションでの使用可能性

アクション名 使用可能
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

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


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