web-dev-qa-db-fra.com

Extraire les images de la galerie dans Wordpress 3.5 sur index.php

J'essaie d'ajouter un curseur sur la page de mon blog avant pour chaque message de la galerie, mais j'ai quelques difficultés à extraire les images de la galerie du message en utilisant le code suivant:

$post_content = get_the_content();
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$array_id = explode(",", $ids[1]);

Le problème est que chaque article de galerie consiste en un paragraphe avec du texte, une "lecture" et une galerie après la pause et ainsi get_the_content () ignore les images parce qu'ils sont après la pause. Comment puis-je obtenir le contenu complet, quelles que soient les pauses?

J'utilise "read more" parce que je veux une brève description de la galerie avant de cliquer dessus pour la lire.

1
Ziik

get_the_content est une balise de modèle et ne fonctionnerait de manière fiable que dans une boucle. Cela signifie que vous devriez également pouvoir utiliser le $post global à la place.

global $post; // may not be necessary unless you have scope issues
              // for example, this is inside a function
$post_content = $post->post_content;
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$array_id = explode(",", $ids[1]);

Vous pouvez ensuite utiliser wp_get_attachment_image pour obtenir les images.

foreach ($array_ids as $id) {
  echo  wp_get_attachment_image($id);
}
1
s_ha_dum