CPT UIでタクソノミーの権限を追加する

Custom Post Type UI(以降「CPT UI」)は、バージョン1.17.1時点で管理画面からタクソノミーの権限を設定できません。

タクソノミーを登録する関数を自作すれば解決しますが、どうしてもCPT UIを使いたい場合は、register_taxonomy関数を実行する直前にフィルターフックが用意されていますので、関数を追加しましょう。

add_filter( 'cptui_pre_register_taxonomy', function( $args, $tax_name ) {
  $target_taxonomies = ['event']; // 対象タクソノミーを指定
  if ( in_array($tax_name, $target_taxonomies, TRUE) ) {
    $args['capabilities'] = [
      'manage_terms' => "manage_{$tax_name}",
      'edit_terms' => "edit_{$tax_name}",
      'delete_terms' => "delete_{$tax_name}",
      'assign_terms' => "assign_{$tax_name}",
    ];
  }
  return $args;
}, 10, 2 );

User Role Editorを使っている場合は、管理画面に権限が追加されていることが確認できます。

コメント