Supprimer toutes les images à la une en 1 ligne de code : Posez-moi la question n°2

Supprimer toutes les images à la une en 1 ligne de code : Posez-moi la question n°2

Question

@YoungiPhone a posé la question suivante sur le hashtag #WPHelp :

Réponse

À ça je n’ai qu’une seule ligne à répondre :

delete_metadata( 'post', false, '_thumbnail_id', '', true );

Cette ligne vient se mettre dans le fichier functions.php de votre thème enfant ou dans un mu-plugin. Si vous ne savez pas décider, lisez ceci.

Explications

La fonction delete_metadata() permets de supprimer tout type de données meta, habituellement vous utilisez surement delete_user_meta() ou delete_post_meta() etc

Ces fonctions sont justement utiliser delete_metadata(). Ce qui nous interesse c’est son dernier paramètre $delete_all qui nous permets d’éviter de lui passer un ID (celui d’un user ou d’un post par exemple).

Ce paramètre magique permets de TOUT supprimer ! J’ai donc utilisé le type de meta post et utilisé la clé _thumbnail_id qui est la meta donnée contenant l’ID de l’image à la une en question.

Bonus

Si vous aviez voulu simplement les désactiver afin de les récupérer par la suite, il aurait plutôt fallu faire ça :

global $wpdb;
$wpdb->update( $wpdb->postmeta, array( 'meta_key'=>'_temp_thumbnail_id' ), array( 'meta_key'=>'_thumbnail_id' ) );

Ce code va remplacer le nom de la clé de ma donnée meta, ce qui va « désactiver » l’image à la une.

Pour la récupérer, faites :

delete_metadata( 'post', false, '_thumbnail_id', '', true );

global $wpdb;
$wpdb->update( $wpdb->postmeta, array( 'meta_key'=>'_thumbnail_id' ), array( 'meta_key'=>'_temp_thumbnail_id' ) );

Voilà, on supprime d’abord celles qui vous auriez remises en place, puis on refait l’update à l’envers !

Utile non ?

Julio Potier
Consultant en Sécurité, Expert WordPress, Formateur, Marketeur et créateur du plugin de sécurité WordPress SecuPress.
Julio développe et sécurise du contenu web tous les jours. La création de plugins WordPress et la vente de produits WordPress font partie de son quotidien.

Lire la suite

Vous aimez ? Partagez !


Réagir à cet article

120 caractères maximum