我想在循环之外使用此循环的值。
$args = array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'numberposts' => null,
);
if ($attachments) {
foreach ($attachments as $attachment) {
$image_id = get_attachment_link($attachment->ID);
echo ',';
}
}
当它循环时,它会以逗号分隔出一系列图像ID。
1, 2, 3, 4
完成循环后,我想使用该序列,因为它在上面的函数中吐出。
get_jig(array('ids' => $image_id));
目前,当我为$image_id
使用循环变量时,它只提供最后一个ID,当我需要所有这些时。为noobness道歉。我明白这对你们中的一些人来说可能很容易,我仍然围绕着PHP。
答案 0 :(得分:1)
看起来你应该能够在循环之前创建一个数组,并在你去的时候将ID插入其中。
$ids = array(); // Create an empty array here
if ($attachments) {
foreach ($attachments as $attachment) {
$image_id = get_attachment_link($attachment->ID);
echo ',';
$ids[] = $image_id; // Insert the ID into the array
}
}
然后你可以在这个看起来需要采取数组的函数中使用它
get_jig(array('ids' => $ids));
如果get_jig不接受数组,但需要逗号分隔的字符串,则可以使用implode()从数组中创建字符串:
get_jig(array('ids' => implode(',',$ids)));
答案 1 :(得分:0)
你似乎想要一个像“1,2,3,4”这样的字符串。但是你创建一个带有“1”字符串的文件,然后用“2”覆盖这些文件,依此类推。
您想要替换
if ($attachments) {
foreach ($attachments as $attachment) {
$image_id = get_attachment_link($attachment->ID);
echo ',';
}
}
带
if ($attachments) {
foreach ($attachments as $attachment) {
$image_id .= (isset($image_id) ? ", " : $image_id = "") . get_attachment_link($attachment->ID);
}
}
此粘贴显示所有工作.. http://viper-7.com/qZt7It