Ajouter une checkbox à l’image à la une pour choisir de l’afficher

De nombreux thèmes, voir quasiment tous, affichent l’image à la une (featured image) en haut de l’article, et la miniature carrée générée est affichée dans les listes des articles, comme la page du blog, d’une catégorie, d’une recherche … On peut donc vouloir utiliser cette image à la une mais avoir le choix qu’elle soit affichée ou pas en haut de l’article.

Afin de choisir l’affichage en haut d’un article, on ajoute une checkbox laissant le choix :

Image à la une et checkbox
Image à la une et checkbox

Afin d’obtenir cela, on écrit dans functions.php :

Le hook admin_post_thumbnail_html écrit dans la métabox de l’image à la une, le hook save_post permet de sauvegarder la valeur de la checkbox, le champ donné à cette checkbox est hide_featured_image.

La chaine Hide featured image at the post top est traduite par Ne pas afficher l’image à la une en haut de l’article dans le fichier de traduction du thème.

Il suffit alors de tester la valeur du champ hide_featured_image dans la boucle wordPress, dans le fichier post.php ou single.php (en fonction du thème) par exemple :

Si l’on veut en plus obliger le rédacteur à ajouter une image à la une, cela se fait très bien en javascript. Après avoir chargé un fichier de script dans le backend de wordPress avec le hook admin_enqueue_scripts,

On traduit la chaine There is no featured image. The post can’t be saved! par Il n’y a pas d’image à la une. L’article ne peut être enregistré ! dans le fichier de traduction. Et on écrit dans le fichier xbsCustomAdmin.js :

La valeur de  $( 'body' ).hasClass( 'post-type-post' ) permet de savoir si l’on est dans l’édition d’un article.

Et hop, on ajoute une checkbox bien pratique dans la metabox de l’image à la une, et la nécessité d’enregistrer une image à la une.

Soumettre un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *