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

Quick Tip: Add Custom Columns in WordPress Admin Screen

WBOY
Release: 2023-09-04 18:42:01
Original
1171 people have browsed it

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;
	}
}
Copy after login

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);
Copy after login

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);
Copy after login

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);
Copy after login

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);
Copy after login

Post category

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

OnlyGenreCustom categories

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

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);
Copy after login

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);
Copy after login

Media Library

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

user

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

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!

source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template