我有以下代码从我用来在存档页面中显示的帖子中提取自动生成的缩略图图像。代码在我的本地服务器上正常工作,但是一旦我将其上传到网络,它就无法正常工作。
---- ----- EDIT
它现在显示的是每个帖子的相同缩略图,链接到输入的第一个帖子。任何想法为什么会这样?
<ul>
<?php query_posts('cat='.get_query_var('cat').'&order=ASC'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php
//Get images attached to the post
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'numberposts' => -1,
'order' => 'DESC',
'post_status' => null,
'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
$img = wp_get_attachment_thumb_url( $attachment->ID );
break;
}
}
?>
<li>
<img src="<?php echo $img; ?>" alt="" />
<h2 class="small"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
</li>
<?php endwhile; ?>
<?php endif;?>
</ul>
答案 0 :(得分:2)
回复您的编辑。您需要确保在每次迭代while()循环后重置$ img。然后,您需要在写入图像标记之前进行检查以确保其设置。这将停止重复相同的缩略图。示例代码如下。
现在正在重复,因为它正在寻找第一个帖子的图像而不是其他帖子的图像。但是$ img是在第一篇文章中设置的,因此它继续用于所有其他帖子,因为它永远不会被重置或更改。
<ul>
<?php query_posts('cat='.get_query_var('cat').'&order=ASC'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php
//Get images attached to the post
$img = false;
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'numberposts' => -1,
'order' => 'DESC',
'post_status' => null,
'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
$img = wp_get_attachment_thumb_url( $attachment->ID );
break;
}
}
?>
<li>
<?php if ($img): ?><img src="<?php echo $img; ?>" alt="" /><?php endif; ?>
<h2 class="small"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
</li>
<?php endwhile; ?>
<?php endif;?>
</ul>
答案 1 :(得分:0)
也许它缺少服务器上的GD库?你检查过phpinfo()来验证吗?