web-dev-qa-db-fra.com

Comment obtenir toutes les images et leurs vignettes à partir de la médiathèque wp

J'ai une fonction qui renvoie toutes les images de la médiathèque WordPress, mais le problème est qu'elle ne renvoie pas toutes les tailles d'image, p. Ex. (Miniature, petite, grande), elle ne renvoie que l'image d'origine.

function get_images_highcompress_data()
{

     $args = array(
      'post_type' => 'attachment',
      'post_mime_type' => 'image/jpeg,image/jpg,image/png',
      'post_status' => 'inherit',
      'posts_per_page' => -1,
      'orderby' => 'id',
      'order' => 'ASC'
  );
  $query_images = new WP_Query( $args );
  $images = array();
  foreach ( $query_images->posts as $image) {
      $images[]= $image->guid;
  }

Existe-t-il une autre fonction permettant d’obtenir toutes les images d’URL de la médiathèque wp avec toutes ses tailles?.

Par exemple. Image01.jpg, image01-500X500.jpg, Image01-1080X1080.jpg, Image02.jpg, image02-500X500.jpg, Image02-1080X1080.jpg Comme ceci dans un seul tableau.

2
David Cring

Voici ce que vous pouvez faire.

  1. Obtenez une liste de toutes les tailles de vignettes disponibles
  2. Interroger toutes les pièces jointes
  3. Pour chaque taille de pièce jointe, obtenez son URL et enregistrez-la dans le tableau.

Changeons votre code en ceci:

function get_images_highcompress_data() {
    $args = array(
        'post_type' => 'attachment',
        'post_mime_type' => 'image/jpeg,image/jpg,image/png',
        'post_status' => 'inherit',
        'posts_per_page' => -1,
        'orderby' => 'id',
        'order' => 'ASC'
    );
    // Get all the available thumbnail sizes
    $sizes = get_intermediate_image_sizes();
    // Query the attachments
    $query_images = new WP_Query( $args );
    $images = array();
    // Run a loop
    if ( $query_images->have_posts() ){
        while ($query_images->have_posts()){
            $query_images->the_post();
            // For each attachment size, store its URL in an array
            foreach ( $sizes as $key => $size ) {
                $thumbnails[$key] = wp_get_attachment_image_src( get_the_ID(), $size)[0];
            }
            $images = array_merge( $thumbnails , $images );
        }
        return $images;
    }
}

Le tableau retourné ressemblera à ceci:

[0] => thumbnail-url,
[1] => medium-url,
[2] => large-url,

Etc.

1
Jack Johansson