web-dev-qa-db-fra.com

Modèle de page personnalisé pour afficher toutes les images jointes

Je suis en train d'essayer d'insérer toutes les images dans les médias à la page. En signifiant toutes les images, tout ajouté dans le blog. J'ai regardé cette fonctionnalité toute la journée. Y at-il un shortcode pour cela ou quelque chose de facile à faire?

Merci d'avance.

1
tolga

Tout d’abord, vous devez créer un modèle de page personnalisé , pour conserver votre sortie de boucle personnalisée. Créez un fichier de thème, nommé par exemple. template-all-images.php, avec l'en-tête suivant:

<?php
/**
 * Template name: All Images
 */
?>

Ensuite, dans le modèle de page personnalisé, vous devez interroger toutes les images jointes. Essayez d’utiliser WP_Query(), avec les arguments post type/status :

<?php
$images_query_args = array(
    'post_type' => 'attachment',
    'post_status' => 'inherit',
    'post_mime_type' => 'image'
);

$images_query = new WP_Query( $images_query_args );
?>

Sortez ensuite la requête:

<?php
if ( $images_query->have_posts() ) : while ( $images_query->have_posts() ) : $images_query->the_post();

    // Normal loop output goes here

endwhile; endif;

// Be kind; rewind
wp_reset_postdata();
?>

Pour votre sortie en boucle, si vous souhaitez simplement produire une image entièrement formée, vous pouvez utiliser par exemple wp_get_attachment_image() :

<?php
wp_get_attachment_image( get_the_ID(), 'large' );
?>

(Remplacez 'large' par la taille d'image souhaitée ou omettez-la pour utiliser la taille par défaut, 'thumbnail'.)

Le fichier de modèle de page personnalisé complet peut ressembler à ceci:

<?php
/**
 * Template name: All Images
 */

// Get the header
get_header();

// Image attachment query arguments
$images_query_args = array(
    'post_type' => 'attachment',
    'post_status' => 'inherit',
    'post_mime_type' => 'image'
);
// Query image attachments
$images_query = new WP_Query( $images_query_args );

// Image attachment query loop
if ( $images_query->have_posts() ) : while ( $images_query->have_posts() ) : $images_query->the_post();

    // Output the attachment image
    wp_get_attachment_image( get_the_ID(), 'large' );

endwhile; endif;

// Be kind; rewind
wp_reset_postdata();

// Get the footer
get_footer();
?>

Utilisation de votre modèle de page personnalisé

  1. Assurez-vous que template-all-images.php est enregistré dans votre répertoire de thèmes sous wp-content/themes/{theme-name}.
  2. Créer une nouvelle page statique
  3. Sous la boîte de méta Attributs de page , affectez le modèle "Toutes les images" à la page.
  4. Publier la page

Édite

Modifications intégrées à la question.

3
Chip Bennett