web-dev-qa-db-fra.com

Comment obtenir une légende de pièce jointe (get_the_excerpt donne un extrait au parent)?

J'affiche les pièces jointes sur la page de publication parent avec ce code:

        $args = array('post_type' => 'attachment', 'post_mime_type' => 'image', 'order'=> 'ASC', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); 
        $attachments = get_posts($args);
        if ($attachments) {
            foreach ( $attachments as $attachment ) {
            $attachments_url[] = $my_image;
            $attachments_caption[] = get_the_excerpt();
            }
        }

le problème est que l'extrait ne contient pas la légende de la pièce jointe, mais l'extrait suivant.

savez-vous comment afficher les légendes de la pièce jointe? Je vous remercie

4
rogaroga

get_the_excerpt() devrait fonctionner pour obtenir la légende très bien.

Votre problème est qu’il cherche à traiter les publications dans les variables globales et dans votre code, vous ne le configurez pas avec les pièces jointes que vous parcourez.

Vous devez utiliser setup_postdata() pour que cela fonctionne.

Une autre façon serait quelque chose comme:

get_post_field('post_excerpt', $attachment->ID);
5
Rarst

Vous pouvez essayer wp_prepare_attachment_for_js( $id ) et renvoyer tout ce dont vous avez besoin pour la pièce jointe.

Vous recevrez un tableau avec ceci:

  • identifiant
  • titre
  • nom de fichier
  • url
  • lien
  • alt
  • auteur
  • la description
  • légende
  • prénom
  • statut
  • téléchargé sur
  • rendez-vous amoureux
  • modifié
  • menuOrder
  • mime
  • type
  • sous-type
  • icône
  • dateFormatted
  • nonces
  • editLink
  • tailles
  • largeur
  • la taille
  • fileLength
  • compat

Vérifiez le Codex: wp_prepare_attachment_for_js ()

4
Hrimiuc Paul