Home  >  Article  >  Backend Development  >  Quick Tip: Add Custom Columns in WordPress Admin Screen

Quick Tip: Add Custom Columns in WordPress Admin Screen

WBOY
WBOYOriginal
2023-09-04 18:41:091142browse

Quick Tip: Add Custom Columns in WordPress Admin Screen

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.


Step 1Define column function

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;
	}
}

Step 2Hook the column function to WordPress

Now, let’s hook these functions into the WordPress admin screen:

Posts and post types, except pages

add_filter('manage_posts_columns', 'ST4_columns_head');
add_filter('manage_posts_custom_column', 'ST4_columns_content', 10, 2);

WordPress Default Posts Only

add_filter('manage_post_posts_columns', 'ST4_columns_head', 10);
add_action('manage_post_posts_custom_column', 'ST4_columns_content', 10, 2);

WordPress default page only

add_filter('manage_page_posts_columns', 'ST4_columns_head', 10);
add_action('manage_page_posts_custom_column', 'ST4_columns_content', 10, 2);

OnlyMoviesCustom Post Type

add_filter('manage_movie_posts_columns', 'ST4_columns_head_movies', 10);
add_action('manage_movie_posts_custom_column', 'ST4_columns_content_movies', 10, 2);

Post category

add_filter('manage_edit-category_columns', 'ST4_columns_head');
add_filter('manage_category_custom_column', 'ST4_columns_content_taxonomy', 10, 2);

OnlyGenreCustom categories

add_filter('manage_edit-genre_columns', 'ST4_columns_head');
add_filter('manage_genre_custom_column', 'ST4_columns_content_taxonomy', 10, 2);

Post tag

add_filter('manage_edit-post_tag_columns', 'ST4_columns_head');
add_filter('manage_post_tag_custom_column', 'ST4_columns_content_taxonomy', 10, 2);

Link category

add_filter('manage_edit-link_category_columns', 'ST4_columns_head');
add_filter('manage_link_category_custom_column', 'ST4_columns_content_taxonomy', 10, 2);

Media Library

add_filter('manage_media_columns', 'ST4_columns_head');
add_filter('manage_media_custom_column', 'ST4_columns_content', 10, 2);

user

add_filter('manage_users_columns', 'ST4_columns_head');
add_filter('manage_users_custom_column', 'ST4_columns_content_users', 10, 2);

Final Notes

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn