WordPress : Comment modifier le titre d’une page ou d’un article automatiquement lors de son enregistrement ?
Il peut s’avérer nécessaire (ou simplement pratique) de pouvoir modifier le titre des pages, des articles ou de post_type personnalisés automatiquement.
Dans quel cas ?
- Vous avez crée un post_type « témoignages » qui regroupent tous les témoignages de vos clients. Vous apprécierez peut-être que le titre de vos publications soient automatiquement générés de la façon suivante : « Auteur – Ville » (à partir des champs Auteur et Ville que vous aurez créez en amont)
- Vous avez crée des fiches de membres, et vous souhaitez que vos pages soient nommées automatiquement de cette manière « Nom Prénom (Fonction) »
- …
Pourquoi ?
- Cela vous permet de mieux vous y retrouver dans l’administration
- Cela vous évite de modifier à la fois vos champs personnalisés et votre titre à chaque modification
- Cela évite les erreurs, et les informations différentes
- …
Et bien c’est chose facile avec le hook wp_insert_post_data
qui est fait pour ça !
Modifier automatiquement tous les titres :
[pastacode lang= »php » manual= »function%20ch_create_title(%20%24data%2C%20%24postarr%20)%20%7B%0A%09%24data%5B’post_title’%5D%20%3D%20’Mon%20nouveau%20titre%20g%C3%A9n%C3%A9r%C3%A9%20automatiquemen%20!’%3B%0A%09return%20%24data%3B%0A%7D » message= » » highlight= » » provider= »manual »/]Pour modifier les titres uniquement sur un type de publication donné :
[pastacode lang= »php » manual= »function%20ch_create_title(%20%24data%2C%20%24postarr%20)%20%7B%0A%09if%20(%20’page’%20%3D%3D%20%24data%5B’post_type’%5D%20)%20%7B%0A%09%09%24data%5B’post_title’%5D%20%3D%20’Mon%20nouveau%20titre%20g%C3%A9n%C3%A9r%C3%A9%20automatiquement%20sur%20des%20pages%20!’%3B%0A%09%09return%20%24data%3B%0A%09%7D%0A%09if%20(%20’single’%20%3D%3D%20%24data%5B’post_type’%5D%20)%20%7B%0A%09%09%24data%5B’post_title’%5D%20%3D%20’Mon%20nouveau%20titre%20g%C3%A9n%C3%A9r%C3%A9%20automatiquement%20sur%20des%20articles%20!’%3B%0A%09%09return%20%24data%3B%0A%09%7D%0A%09if%20(%20’mon_post_type’%20%3D%3D%20%24data%5B’post_type’%5D%20)%20%7B%0A%09%09%24data%5B’post_title’%5D%20%3D%20’Mon%20nouveau%20titre%20g%C3%A9n%C3%A9r%C3%A9%20automatiquement%20sur%20des%20publications%20de%20type%20mon_post_type%20!’%3B%0A%09%09return%20%24data%3B%0A%09%7D%0A%09%2F%2F…%0A%7D » message= » » highlight= » » provider= »manual »/]Modifier votre titre à partir de champ personnalisé :
[pastacode lang= »php » manual= »function%20ch_create_title(%20%24data%2C%20%24postarr%20)%20%7B%0A%09if%20(%20’page’%20%3D%3D%20%24data%5B’post_type’%5D%20)%20%7B%0A%09%09%24my_custom_value%20%3D%20%24postarr%5B’custom_value’%5D%3B%0A%09%09%24data%5B’post_title’%5D%20%3D%20%24my_custom_value%3B%0A%09%7D%0A%09return%20%24data%3B%0A%7D » message= » » highlight= » » provider= »manual »/]Modifier votre titre à partir d’un champs personnalisé avec ACF :
Ici, petite particularité, vous devez connaitre le nom du champs ACF. Pour cela, retournez une première fois le tableau $postarr
avec la fonction ci-dessous :
Enregistrez une page dans votre back-office et récupérez le nom du champs sous forme de $postarr['acf']['field_5b36319b0jlkjec']
correspondant.
Une fois que vous l’avez, il vous suffit de l’utiliser dans votre fonction :
Pour aller plus loin…
Cet article évoque la modification des titres, mais évidemment vous pouvez changer ici bien d’autres valeurs. Comme le slug
par exemple :
Si cet article vous a aidé, si vous avez des questions ou des améliorations à proposer, n'hésitez pas à me laisser un commentaire en bas de page !
1 réponse
[…] a vu comment modifier automatiquement le titre des pages (ou le slug, ou encore toutes sortes d’infos) lors de l’enregistrement d’un […]