This quick tip explains how to add custom columns to the admin screen of your WordPress blog.
Here are some code snippets you can use to customize the columns in the Admin Screen.
You can copy and paste them into your theme's functions.php file, or download the plugin included with this article.
First, let’s define some helper functions that we will later hook into WordPress. The first two add a new column (or two columns, or remove the default column), while the others display the column contents. In these examples, we assume that you have activated the Movies custom post type and the Genres custom category. You can learn how to create custom post types and taxonomies in the previous article.
function ST4_columns_head($defaults) { $defaults['first_column'] = 'First Column'; /* ADD ANOTHER COLUMN (OPTIONAL) */ // $defaults['second_column'] = 'Second Column'; /* REMOVE DEFAULT CATEGORY COLUMN (OPTIONAL) */ // unset($defaults['categories']); /* TO GET DEFAULTS COLUMN NAMES: */ // print_r($defaults); return $defaults; } // ONLY FOR movie CUSTOM POST TYPE function ST4_columns_head_movies($defaults) { $defaults['my_movie_column'] = 'MY MOVIE COLUMN'; return $defaults; } // GENERAL PURPOSE function ST4_columns_content($column_name, $post_ID) { if ($column_name == 'first_column') { // DO STUFF FOR first_column COLUMN echo 'The post ID is: ' . $post_ID; } /* IF YOU NEED ANOTHER COLUMN - UNCOMMENT ALSO $defaults['second_column'] = 'Second Column'; in ST4_columns_head() */ /* if ($column_name == 'second_column') { // DO STUFF FOR second_column COLUMN } */ } // TAXONOMIES: CATEGORIES (POSTS AND LINKS), TAGS AND CUSTOM TAXONOMIES function ST4_columns_content_taxonomy($c, $column_name, $term_id) { if ($column_name == 'first_column') { echo 'The term ID is: ' . $term_id; } } // USERS function ST4_columns_content_users($c, $column_name, $user_id) { if ($column_name == 'first_column') { $output .= 'The user ID is: ' . $user_id; } if ($column_name == 'second_column') { $output .= 'This is the second column content'; } return $output; } // CUSTOM POSTS function ST4_columns_content_movies($column_name, $movie_ID) { if ($column_name == 'my_movie_column') { echo 'The movie ID is: ' . $movie_ID; } }
Now, let’s hook these functions into the WordPress admin screen:
add_filter('manage_posts_columns', 'ST4_columns_head'); add_filter('manage_posts_custom_column', 'ST4_columns_content', 10, 2);
add_filter('manage_post_posts_columns', 'ST4_columns_head', 10); add_action('manage_post_posts_custom_column', 'ST4_columns_content', 10, 2);
add_filter('manage_page_posts_columns', 'ST4_columns_head', 10); add_action('manage_page_posts_custom_column', 'ST4_columns_content', 10, 2);
add_filter('manage_movie_posts_columns', 'ST4_columns_head_movies', 10); add_action('manage_movie_posts_custom_column', 'ST4_columns_content_movies', 10, 2);
add_filter('manage_edit-category_columns', 'ST4_columns_head'); add_filter('manage_category_custom_column', 'ST4_columns_content_taxonomy', 10, 2);
add_filter('manage_edit-genre_columns', 'ST4_columns_head'); add_filter('manage_genre_custom_column', 'ST4_columns_content_taxonomy', 10, 2);
add_filter('manage_edit-post_tag_columns', 'ST4_columns_head'); add_filter('manage_post_tag_custom_column', 'ST4_columns_content_taxonomy', 10, 2);
add_filter('manage_edit-link_category_columns', 'ST4_columns_head'); add_filter('manage_link_category_custom_column', 'ST4_columns_content_taxonomy', 10, 2);
add_filter('manage_media_columns', 'ST4_columns_head'); add_filter('manage_media_custom_column', 'ST4_columns_content', 10, 2);
add_filter('manage_users_columns', 'ST4_columns_head'); add_filter('manage_users_custom_column', 'ST4_columns_content_users', 10, 2);
Two final notes: If the admin screen has no items, such as no labels yet, the contents of the new column will not be displayed.
ST4_columns_content_users
This function is slightly different from the other functions in that it returns a PHP variable containing HTML instead of dynamically printing the column contents.
The above is the detailed content of Quick Tip: Add Custom Columns in WordPress Admin Screen. For more information, please follow other related articles on the PHP Chinese website!