Maison  >  Article  >  développement back-end  >  Astuce rapide : ajoutez des colonnes personnalisées dans l’écran d’administration de WordPress

Astuce rapide : ajoutez des colonnes personnalisées dans l’écran d’administration de WordPress

WBOY
WBOYoriginal
2023-09-04 18:41:091148parcourir

Astuce rapide : ajoutez des colonnes personnalisées dans l’écran d’administration de WordPress

Cette astuce explique comment ajouter des colonnes personnalisées dans l'écran d'administration de votre blog WordPress.


Voici quelques extraits de code que vous pouvez utiliser pour personnaliser les colonnes de l'écran d'administration.

Vous pouvez les copier et les coller dans le fichier functions.php de votre thème, ou télécharger le plugin inclus avec cet article.


Étape 1Définir la fonction de colonne

Tout d’abord, définissons quelques fonctions d’assistance que nous intégrerons plus tard à WordPress. Les deux premiers ajoutent une nouvelle colonne (ou deux colonnes, ou suppriment la colonne par défaut), tandis que les autres affichent le contenu de la colonne. Dans ces exemples, nous supposons que vous avez activé le type de publication personnalisé Films et les catégories personnalisées Genres. Vous pouvez apprendre à créer des types de publication et des taxonomies personnalisés dans l'article précédent.

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

Étape 2Accrochez la fonction de colonne à WordPress

Maintenant, connectons ces fonctionnalités à l'écran d'administration de WordPress :

Messages et types de messages, sauf pages

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

Publications par défaut WordPress uniquement

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

Page par défaut WordPress uniquement

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

UniquementFilmsType de publication personnalisé

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

Catégories de publications

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

Uniquementgenrescatégories personnalisées

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

Publier des tags

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

Catégories de liens

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

Médiathèque

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

Utilisateur

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

Notes finales

Deux dernières remarques : si l'écran d'administration ne contient aucun élément, par exemple pas encore d'étiquettes, le contenu de la nouvelle colonne ne sera pas affiché.

La fonction

ST4_columns_content_users est légèrement différente des autres dans la mesure où elle renvoie une variable PHP contenant du HTML au lieu d'imprimer dynamiquement le contenu de la colonne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn