web-dev-qa-db-fra.com

Existe-t-il un crochet qui se déclenche une fois toutes les vignettes générées?

Je souhaite télécharger l'image et toutes les vignettes générées sur un autre serveur (en tant que sauvegarde). J'ai seulement trouvé add_attachment , mais c'est déclenché juste après le téléchargement de l'image et la mise à jour de la table postmeta.

Je veux attendre que toutes les tailles de vignettes soient générées, puis prendre les fichiers et les télécharger sur l'autre serveur. Y a-t-il un crochet qui correspond à mes attentes?

5
sydev

Les miniatures dans WordPress can doivent être générées à l’aide de wp_generate_attachment_metadata () , cette fonction déclenche un filtre après avoir généré toutes les vignettes 'wp_generate_attachment_metadata' et le filtre fournit $ metadata et $ attachment_id aux fonctions raccordées.

Vous pouvez associer votre fonction personnalisée à ce filtre.

$ metadata: métadonnées de pièce jointe. Ce dont vous avez besoin est $ métadonnées ['tailles'] ['nom de taille'] , le
'nom-taille' est le nom de la taille de la vignette ajoutée par add_image_size () ou celle par défaut. par exemple.

$metadata[sizes] => Array
       (
           [thumbnail] => Array
               (
                   [file] => example_image-150x150.jpg
                   [width] => 150
                   [height] => 150
                   [mime-type] => image/jpeg
               )
           [medium] => Array
               (
                   [file] => example_image-4-300x194.jpg
                   [width] => 300
                   [height] => 194
                   [mime-type] => image/jpeg
               )
           [mysize] => Array
               (
                   [file] => example_image-4-400x400.jpg
                   [width] => 400
                   [height] => 400
                   [mime-type] => image/jpeg
               )
       )

à partir de là, vous pouvez savoir quelles tailles existent pour certaines pièces jointes et ne télécharger que ces tailles/vignettes.
Pour obtenir ces vignettes, utilisez une fonction telle que wp_get_attachment_image_src ($ id, $ nom_dimensionnement) pour récupérer les URL de vignettes.
(Facultatif) : Installez le Forcer la régénération des vignettes plugin pour réexécuter wp_generate_attachment_metadata () pour les images déjà téléchargées.
Faites-moi savoir si cela fonctionne pour vous.

6
devkabiir