getSlug() : $taxonomyModel; $manageEditAction = 'manage_edit-'.$taxonomyName.'_columns'; $manageEditSortAction = 'manage_edit-'.$taxonomyName.'_sortable_columns'; $customColumnsAction = 'manage_'.$taxonomyName.'_custom_column'; $metaGroups = (new FetchMetaGroupsQuery([ 'belongsTo' => MetaTypes::TAXONOMY, 'find' => $taxonomyName, 'clonedFields' => true, 'cct' => true, ]))->execute(); // add columns to show add_filter($manageEditAction, function ($columns) use ($metaGroups) { foreach ($metaGroups as $metaGroup) { foreach ($metaGroup->getBoxes() as $metaBoxModel) { foreach ($metaBoxModel->getFields() as $metaBoxFieldModel) { if ($metaBoxFieldModel->isShowInArchive()) { $key = Strings::toDBFormat($metaBoxModel->getName()).'_'.Strings::toDBFormat($metaBoxFieldModel->getName()); $value = Strings::toHumanReadableFormat($metaBoxFieldModel->getName()); $columns[$key] = $value; } } } } return $columns; }); // display value on columns to show add_action($customColumnsAction, function ($content, $columnName, $termId) use ($metaGroups) { foreach ($metaGroups as $metaGroup) { foreach ($metaGroup->getBoxes() as $metaBoxModel) { foreach ($metaBoxModel->getFields() as $metaBoxFieldModel) { if ($metaBoxFieldModel->isShowInArchive()) { $boxName = Strings::toDBFormat($metaBoxModel->getName()); $fieldName = Strings::toDBFormat($metaBoxFieldModel->getName()); $key = $boxName.'_'.$fieldName; if ($key === $columnName) { echo do_shortcode('[acpt_tax admin_view="true" preview="true" tid="'.$termId.'" box="'.Strings::esc_attr($boxName).'" field="'.Strings::esc_attr($fieldName).'"]'); } } } } } }, 10, 3); // add sortable columns add_filter($manageEditSortAction, function ($columns) use ($metaGroups) { foreach ($metaGroups as $metaGroup) { foreach ($metaGroup->getBoxes() as $metaBoxModel) { foreach ($metaBoxModel->getFields() as $metaBoxFieldModel) { if ( $metaBoxFieldModel->isShowInArchive() && $metaBoxFieldModel->isFilterable() && $metaBoxFieldModel->isFilterableInAdmin() ) { $key = Strings::toDBFormat($metaBoxModel->getName()).'_'.Strings::toDBFormat($metaBoxFieldModel->getName()); $value = Strings::toHumanReadableFormat($metaBoxFieldModel->getName()); $columns[$key] = $value; } } } } return $columns; }); // quick edit add_action('quick_edit_custom_box', function ($columnName, $screen, $tax) use ($taxonomyName, $metaGroups) { if ($screen !== 'edit-tags') { return; } $taxonomy = get_taxonomy($tax); if ($taxonomy === false || ! current_user_can($taxonomy->cap->edit_terms)) { return; } if ($taxonomyName !== $tax) { return; } self::generateQuickEditFields($metaGroups, $columnName, null); }, 10, 3); // add_action('admin_print_footer_scripts-edit-tags.php', function () use ($taxonomyName) { $current_screen = get_current_screen(); if ($current_screen->id != 'edit-'.$taxonomyName || $current_screen->taxonomy != $taxonomyName) { return; } // Ensure jQuery library is loaded wp_enqueue_script('jquery'); ?> getBoxes() as $metaBoxModel) { foreach ($metaBoxModel->getFields() as $metaBoxFieldModel) { if ( $metaBoxFieldModel->isShowInArchive() && $metaBoxFieldModel->isForQuickEdit() && $metaBoxFieldModel->canBeQuickEdited() ) { $key = Strings::toDBFormat($metaBoxModel->getName()).'_'.Strings::toDBFormat($metaBoxFieldModel->getName()); $key = esc_html($key); $label = Strings::toHumanReadableFormat($metaBoxFieldModel->getName()); $value = ""; if ($columnName === $key) { Nonce::field(); echo self::generateQuickEditField($key, $label, $value, $metaBoxFieldModel); } } } } } } }