概要
cptui_pre_save_taxonomy
アクションは、Custom Post Type UIプラグインにおいて、カスタムタクソノミーを保存する前に実行されます。このフックを利用することで、タクソノミーのデータを加工したり、バリデーションを行うことが可能です。以下に、よく使われる機能をいくつか挙げます。
- タクソノミーの設定のバリデーション
- タクソノミーのスラッグの自動生成
- カスタムフィールドの値を保存する前の処理
- セキュリティ対策としてのデータ検証
- タクソノミーの関係性の設定
- タクソノミーのデフォルト値の設定
使用可能なバージョン
- 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 |