У меня есть следующий код для извлечения автоматически созданных миниатюрных изображений из сообщения, которое я использую для отображения на странице архива. Код отлично работает на моем локальном сервере, но как только я загрузил его в Интернет, он не работает.

----РЕДАКТИРОВАТЬ-----

Теперь он отображает один и тот же эскиз для каждого сообщения, связанный с первым введенным сообщением. Есть идеи, почему это может быть?

    <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>
1
DanC 21 Авг 2009 в 17:12

2 ответа

Лучший ответ

В ответ на ваше редактирование. Убедитесь, что вы сбрасываете $ img после каждой итерации цикла while (). Затем вы захотите сделать проверку, чтобы убедиться, что он установлен, прежде чем писать тег изображения. Это остановит повторение одного и того же эскиза. Пример кода ниже.

Сейчас он повторяется, потому что находит изображение для первого сообщения, но не для остальных. Но $ 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>
2
Steven Surowiec 21 Авг 2009 в 17:32
К сожалению, это тоже не сработало - хотя это имеет смысл и должно работать. хмммм ............
 – 
DanC
21 Авг 2009 в 18:16

Может, на сервере отсутствует библиотека GD? Вы проверили phpinfo () для проверки?

0
Jakub 21 Авг 2009 в 17:15
Он запущен и работает после быстрой проверки
 – 
DanC
21 Авг 2009 в 17:21