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 ?

Lire la suite

Vous aimez ? Partagez !

8 Commentaires

Avant de parler, merci de lire la charte des commentaires.

Utiliser le tag [php][/php] pour ajouter du code ou utilisez un service comme pastebin.com.
Cibler un commentateur avec un "@", merci à Mention Comments Authors !

  1. Greg · février 1, 2014
    Joli la désactivation :)
    • Julio Potier · février 1, 2014
      Je suis limite cracra, mais j’ai pas mieux là, on verra dans 6 mois ;)
  2. Aurélien Denis · février 1, 2014
    Excellente cette astuce ! Et j’adore le concept : on te twitte et tu réponds par un tutoriel.
  3. Bernard G. · février 1, 2014
    Merci pour cette astuce et ce bout de code.
  4. Jessy · février 1, 2014
    Simple mais efficace :) Merci pour l’astuce
  5. DATA · février 1, 2014
    Bon, question con sur un site d’expert WP… mais où est-ce qu’on utilise ce code ?
    • Julio Potier · février 1, 2014
      ha mais tu as raison, j’ai zappé de le dire, je MAJ l’article ;)
  6. Crimonchu · 8 Days Ago
    Merci pour l’article, et si je voulez supprimer toutes les images à la une pour une catégorie (toutes les articles dans cette catégorie) spécifique cela est possible ?

    Merci bien.

WP Rocket Banner