J'essaie de sortir un tas d'images après chaque article, mais je ne peux en produire qu'une.
add_filter( 'the_content', 'image_posts' );
function image_posts( $content ) {
global $post;
if ( ! $post instanceof WP_Post ) {
return $content;
}
$all_images = get_images(); // array of images
switch ( $post->post_type ) {
case 'page':
// return $content; // this only return content
foreach ($all_images as $image){
echo '<img src="'.$image.'" />';
}
// return $content; // this returns all images on top of the content
default:
return $content;
}
}
et si je modifie la boucle à ceci:
foreach ($all_images as $image){
return content . '<img src="'.$image.'" />';
}
Je ne reçois que le contenu avec une seule image. Comment puis-je sortir toutes les images après le contenu?
En supposant que nous atteignions l'instruction switch et la casse de page et en supposant que $ all_images contienne effectivement des URLs d'image:
Dans votre instruction switch, essayez d’abord de stocker toutes les images dans une variable, puis de les concaténer avec $content
dans votre instruction de retour.
add_filter( 'the_content', 'image_posts' );
function image_posts( $content ) {
global $post;
if ( ! $post instanceof WP_Post ) {
return $content; // If this is true, we return $content and the rest of the code doesn't run.
}
$all_images = get_images(); // array of images
$images = ""; // We'll store all our image tag strings here here. Assuming, of course, we make it to this section of code.
switch ( $post->post_type ) {
case 'page':
foreach ($all_images as $image){
$images .= '<img src="'.$image.'" />';
}
return $content . $images; // Concatenate $images after $content
default:
return $content;
}
}
Une partie du problème que vous rencontrez probablement est qu’une fois que vous aurez renvoyé $content
, aucun autre code du filtre ne sera exécuté.
Pour un bonus supplémentaire, vous pouvez ajouter une classe à votre balise d'image ou l'envelopper avec une div ou un autre wrapper pour faire de la magie css plus tard :)
Un éclaircissement sur les filtres et les actions WordPress: WP les filtres et les actions fonctionnent mieux avec les instructions return
afin de fonctionner correctement. Alors que vous pourriez echo
quelque chose, cette echo
a lieu au moment de l’exécution du code. Cela signifie que votre code apparaît souvent en tête de page.