【WordPress】プラグインによって追加されたカテゴリーのカスタムフィールドを外す

  • URLをコピーしました!

プラグインを追加したら、意図せずカテゴリー一覧(ターム一覧)/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するだけ。

VK Blocksプラグインの中身を全文検索した時のスクリーンショット

しかし今回はarray( __CLASS__, 'taxonomy_add_new_meta_field_color' ) と書かれていて、__CLASS___ って何?となりました。

Query Monitorプラグインで探す

Query Monitorプラグインを使うとフックやアクションを一覧で確認できます。

カテゴリーページでQuery Monitorをひらいて、Hooks & Actions の一覧を表示したうえで_add_form_fields で検索すると「操作」のところに関数名が出てきます。

Query Monitor プラグインの詳細は以下のリンクからご確認ください。

WordPress.org 日本語
Query Monitor Query Monitor は WordPress 開発者向けのツールパネルです。

まとめ

今回は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);
        }
    }
}
よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次