プラグインを追加したら、意図せずカテゴリー一覧(ターム一覧)/wp-admin/edit-tags.php?taxonomy=category
の新規追加部分にフィールドが追加されてしまいました。
今回はどうしてもそのフィールドを管理画面上から削除したかったのでその方法をまとめました。
目次
消すためのコード
とりあえずコードです。pulguins_function_name
の部分には、そのフィールドを追加するときに使っているプラグイン側の関数名を入れます。
基本のコード
add_action('admin_init', 'remove_term_fields');
function remove_term_fields() {
remove_action('category_add_form_fields', 'plugins_function_name',10);
remove_action('category_edit_form_fields', 'plugins_function_name',10);
}
すべてのタームに対して適用する場合のコード
add_action('admin_init', 'remove_term_fields_all_taxonomies');
function remove_term_fields_all_taxonomies() {
$taxonomies = get_taxonomies();
if ($taxonomies) {
foreach ($taxonomies as $taxonomy) {
//入力欄の部分
remove_action($taxonomy.'_add_form_fields', 'plugins_function_name',10);
remove_action($taxonomy.'_edit_form_fields', 'plugins_function_name',10);
//ターム一覧部分に出力がある場合
remove_action('manage_edit-'.$taxonomy.'_columns', 'plugins_function_name',10);
remove_action('manage_'.$taxonomy.'_custom_column', 'plugins_function_name',10);
}
}
}
プラグインの関数名はどうやって探すか
プラグインのソースコード内で全文検索してadd_actionしている行を探す
プラグインのソースコード内で_add_form_fields
や_edit_form_fields
を探しましょう。
add_actionしている行が見つかればそこに書いてある関数名をそのままremove_actionするだけ。
しかし今回はarray( __CLASS__, 'taxonomy_add_new_meta_field_color' )
と書かれていて、__CLASS___
って何?となりました。
Query Monitorプラグインで探す
Query Monitorプラグインを使うとフックやアクションを一覧で確認できます。
カテゴリーページでQuery Monitorをひらいて、Hooks & Actions の一覧を表示したうえで_add_form_fields
で検索すると「操作」のところに関数名が出てきます。
Query Monitor プラグインの詳細は以下のリンクからご確認ください。
まとめ
今回はVK Blocksプラグインのカテゴリー(ターム)の色フィールドを削除したかったのでQuery Monitorで出てきた情報をもとに以下のようにfunctions.phpに記載してフィールドを消すことができました。
add_action('admin_init', 'remove_term_fields_all_taxonomies');
function remove_term_fields_all_taxonomies() {
$taxonomies = get_taxonomies();
if ($taxonomies) {
foreach ($taxonomies as $taxonomy) {
//入力欄の部分
remove_action($taxonomy.'_add_form_fields', 'VektorInc\VK_Term_Color\VkTermColor::taxonomy_add_new_meta_field_color',10);
remove_action($taxonomy.'_edit_form_fields', 'VektorInc\VK_Term_Color\VkTermColor::taxonomy_add_edit_meta_field_color',10);
//ターム一覧部分に出力がある場合
remove_action('manage_edit-'.$taxonomy.'_columns', 'VektorInc\VK_Term_Color\VkTermColor::edit_term_columns',10);
remove_action('manage_'.$taxonomy.'_custom_column', 'VektorInc\VK_Term_Color\VkTermColor::manage_term_custom_column',10);
}
}
}
コメント