post_type_labels_page

Un filtre pour changer le titre des pages dans l'administration de Wordpress

Changer les titres

Dans WordPress, il est possible de changer le titre des pages dans l’administration en utilisant un simple filter.

Ce filtre se nomme post_type_labels_page et me fournit un objet en argument dans lequel je peux changer la propriété name (le titre quoi) juste avant de le retourner.

add_filter( "post_type_labels_page", "update_page_title" );
function update_page_title($object){
	$object->name = "Mon titre custom";
	return $object;
}

A titre d’information, voici la liste de toutes les propriétés de l’objet qui sont passées en paramètres. Tu peux voir qu’il est également très simple de modifier les intitulés des boutons.

stdClass Object
(
    [name] => Pages
    [singular_name] => Page
    [add_new] => Ajouter
    [add_new_item] => Ajouter une nouvelle page
    [edit_item] => Modifier la page
    [new_item] => Nouvelle page
    [view_item] => Voir la page
    [view_items] => Voir les pages
    [search_items] => Rechercher des pages
    [not_found] => Aucune page trouvée.
    [not_found_in_trash] => Aucune page trouvée dans la corbeille.
    [parent_item_colon] => Page parente :
    [all_items] => Toutes les pages
    [archives] => Archives des pages
    [attributes] => Attributs de page
    [insert_into_item] => Insérer dans la page
    [uploaded_to_this_item] => Téléversés sur cette page
    [featured_image] => Image mise en avant
    [set_featured_image] => Définir l’image mise en avant
    [remove_featured_image] => Supprimer l’image mise en avant
    [use_featured_image] => Utiliser comme image mise en avant
    [filter_items_list] => Filtrer la liste des pages
    [filter_by_date] => Filtrer par date
    [items_list_navigation] => Navigation de la liste des pages
    [items_list] => Liste des pages
    [item_published] => Page mise en ligne.
    [item_published_privately] => Page mise en ligne en privé.
    [item_reverted_to_draft] => Page reconvertie en brouillon.
    [item_scheduled] => Page planifiée.
    [item_updated] => Page mise à jour.
    [item_link] => Lien de page
    [item_link_description] => Un lien vers une page.
    [menu_name] => Pages
    [name_admin_bar] => Page
)

Recherche et découverte

En cherchant un peu, on peut voir que ce filtre est dynamique car il est écrit de la manière suivante.

$labels = apply_filters( "post_type_labels_{$post_type}", $labels );

Grâce à la fonction get_post_types, je peux facilement obtenir la liste de tous les types de posts qui sont déclarés et ça me permet de faire quelques tests.

add_action("init", function(){
	print_r(get_post_types());
});

Un bon exemple est celui de Woocommerce. Si j’ai un shop sur lequel je ne vends que des livres, alors transformer les labels « produit(s) » pour « livre(s) » rendra mon administration beaucoup plus compréhensible.

add_filter("post_type_labels_product", function($object){
	$object->name = "Livre";
	$object->singular_name = "Livre";
	//etc...
	return $object;
});

Cas d'usage

Ce filtre servira principalement à changer les wordings (titre, bouton, etc..) des types de posts qui sont nativement créés par WordPress ou bien par des plugins, les autres étant administrables lors de leur création via la fonction register_post_type.

11/12/2021

Yann Vangampelaere - nouslesdevs -

Sinon jete un coup d’oeil aux autres catégories

Ma boîte aux lettres

Tu veux me demander quelque chose ?