2009-11-04 3 views
0

Я использую этот фрагмент кода, который я нашел (http://impnerd.com/wordpress-hack-add-post-images-to-your-homepage), чтобы отобразить первое изображение, загруженное в сообщение на главной странице рядом с отрывками сообщений. Я делаю это за пределами основного цикла на главной странице и испытываю проблемы. Когда я rewind_posts(), чтобы получить те же результаты цикла, он отлично работает, но когда я пытаюсь создать другой цикл, этот фрагмент кода срывается:Работа с несколькими циклами, функция внутри не

$images =& get_children('post_type=attachment&post_mime_type=image&post_parent=' . $post->ID); 

if ($images) 
{ 
    $keys = array_keys($images); 
    $num = $keys[0]; 
    $firstImageSrc = wp_get_attachment_thumb_url($num); 
    echo "<li><img src=\"{$firstImageSrc}\" width=\"288\" height=\"216\" alt=\"\" title=\"\" /></li>"; 
} 

Я попытался методы в The_Loop # Multiple_Loops_in_Action в документы, и они работают, то есть я могу получить нормальный выход после цикла, но мой фрагмент выше не работает. Любая идея, если есть конфликтный вызов или что-то, что происходит, это мешает ему работать? Поблагодарили бы за помощь, спасибо!

Чтобы быть более конкретным:

<?php $my_query = new WP_Query('category_name=Daily Photo&showposts=1'); 
while ($my_query->have_posts()) : $my_query->the_post(); 
$do_not_duplicate = $post->ID; ?> 
<p>a</p> 
<?php $images =& get_children('post_type=attachment&post_mime_type=image&post_parent=' . $post->ID); 
if ($images) { 
$keys = array_keys($images); 
$num = $keys[0]; 
$firstImageSrc = wp_get_attachment_thumb_url($num); 
echo "<li><img src=\"{$firstImageSrc}\" width=\"288\" height=\"216\" alt=\"\" title=\"\" /></li>";} ?> 
<?php endwhile; ?> 

Выведет <p>a</p>, но не <li><img /></li> код мне нужно в этом фрагменте. Если я использую rewind_posts(); все работает, и я получаю код <li><img /></li>, но я не хочу использовать тот же цикл, который я использовал ранее. Я использую это для отображения ежедневной фотографии на боковой панели, которая вытягивается из категории «Ежедневная фотография». Я исключу Daily Photos из основного цикла и хочу использовать их для рисования изображений из этого фрагмента.

+0

Уточнитните "не работает" – erenon

+0

Этот выход

но не
  • ?: has_posts()): $ my_query-> the_post(); $ do_not_duplicate = $ post-> ID; ?>

    a

    ID); if ($ images) { $ keys = array_keys ($ images); $ num = $ keys [0]; $ firstImageSrc = wp_get_attachment_thumb_url ($ num); echo "
  • \"\"
  • ";}?> rewind_posts дает
  • bccarlso

    +0

    Yikes этот комментарий грязный, я обновил исходное сообщение, чтобы быть более четким. – bccarlso

    ответ

    0

    Попробуйте удалить инструкцию if для стартеров. Удалите любые ссылки на изображения и посмотрите, выводит ли он ваш html без источника изображения. Если это так, то изображения не получают должным образом назначенные и никогда не выполняют код.

    $images =& get_children('post_type=attachment&post_mime_type=image&post_parent=' . $post->ID); 
    

    Этот код проверяет, есть ли изображение загружено в галерею.

    Теперь вам необходимо устранить вышеупомянутое утверждение и понять, почему вы не получаете никаких изображений.

    Кроме того, похоже, что есть plugin, чтобы сделать это, если вы не хотите продолжать испортить код.

    Еще одна вещь, о которой следует помнить, это то, что этот код довольно старый и может быть несовместим с вашей версией wordpress.

    +0

    Спасибо, что у меня было только одно сообщение, присваиваемое категории «Ежедневные фотографии», и изображение, которое я загрузил в него, каким-то образом не было сохранено в галерее сообщения, а в общей медиа-библиотеке, так что фрагмент кода даже не видел изображение. Спасибо за предложение удалить инструкцию if. – bccarlso

    +0

    Я рад, что вы это исправили: P – rwilliams

    Смежные вопросы