Wordpress - How can I add a custom column to the "Manage Categories" table?
The filter is manage_{$screen->id}_columns
, and $screen->id
is edit-category
, giving you manage_edit-category_columns
.
I found this by placing a var_dump()
in get_column_headers()
, which is called by print_column_headers()
, which is called in wp-admin/edit-tags.php
, the page where you edit the category items.
Adding the column name
function manage_my_category_columns($columns)
{
// add 'My Column'
$columns['my_column'] = 'My Column';
return $columns;
}
add_filter('manage_edit-category_columns','manage_my_category_columns');
Next we want to put the data in it:
function manage_category_custom_fields($deprecated,$column_name,$term_id)
{
if ($column_name == 'my_column') {
echo 'test';
}
}
add_filter ('manage_category_custom_column', 'manage_category_custom_fields', 10,3);
I hope this was useful.
In addition to @LeoDang's example, the custom_column is applied to custom taxonomy based on the following filters.
Tested and validated in Wordpress 3.8
1.Adding Custom Column header
// these filters will only affect custom column, the default column will not be affected
// filter: manage_edit-{$taxonomy}_columns
function custom_column_header( $columns ){
$columns['header_name'] = 'Header Name for Display';
return $columns;
}
add_filter( "manage_edit-shop-subcategory_columns", 'custom_column_header', 10);
2.Adding Custom Column Data to corresponding Column Header
// parm order: value_to_display, $column_name, $tag->term_id
// filter: manage_{$taxonomy}_custom_column
function custom_column_content( $value, $column_name, $tax_id ){
// var_dump( $column_name );
// var_dump( $value );
// var_dump( $tax_id );
// for multiple custom column, you may consider using the column name to distinguish
// although If clause is working, Switch is a more generic and well structured approach for multiple columns
// if ($column_name === 'header_name') {
// echo '1234';
// }
switch( $column_name ) {
case 'header_name1':
// your code here
$value = 'header name 1';
break;
case 'header_name2':
// your code here
$value = 'header name 2';
break;
// ... similarly for more columns
default:
break;
}
return $value; // this is the display value
}
add_action( "manage_shop-subcategory_custom_column", 'custom_column_content', 10, 3);
You may also refer to the gist code shared online for any update and additional notes.