web-dev-qa-db-fra.com

Quel crochet est activé lors de l'insertion d'un support dans un message

Je souhaite ajouter une numérotation à chaque image lorsque je les insère dans le message. Par exemple, si j'insère 3 images dans un message, il y aura:

  1. Image 1

  2. Image 2

  3. Image 3

J'ai jeté un coup d'œil à la documentation WordPress, mais je ne trouvais pas quel crochet était déclenché lors de l'insertion d'images dans un message.

2
Noob Coder

L'action add_attachment est déclenchée lorsque la fonction wp_insert_attachment() est appelée pour ajouter un élément à la bibliothèque multimédia. Les images sont ajoutées aux publications après avoir été insérées dans la médiathèque. Même lors de l'ajout via l'éditeur de publication, les éléments sont ajoutés à la bibliothèque avec wp_insert_attachment() puis à la publication.

add_action( 'add_attachment', function( $post_ID ) { 
    // Do Stuff
});

Cela ne vous permettra pas de numéroter des articles par courrier, mais uniquement par exemple dans la médiathèque. Que cela fonctionne pour vos besoins, je ne peux pas vous répondre.

https://codex.wordpress.org/Plugin_API/Action_Reference/add_attachment

3
jdm2112

Si vous voulez réellement vous accrocher au moment où l'auteur d'une publication insère une image ou une autre pièce jointe dans l'éditeur Wordpress, utilisez image_send_to_editor().

Par exemple, si vous souhaitez encapsuler l'image dans un <div> ou un <figure> à chaque fois, vous pouvez le faire comme suit:

function wrap_attachments($html, $id, $caption, $title, $align, $url) {
  $src  = wp_get_attachment_image_src( $id, $size, false );
  $output = "<div id='post-$id media-$id' class='align$align'>";
  $output .= "<img src='$src[0]' alt='$title' width='$src[1]' height='$src[2]' />";
  $output .= "</div>";
  return $output;
}
add_filter( 'image_send_to_editor', 'wrap_attachments', 10, 9 );

Explication supplémentaire dans cet article .

0
Orun