Wordpress получает первое изображение из поста - PullRequest
1 голос
/ 13 ноября 2011

Пытаюсь получить первое изображение из поста, но мой php-код ничего не возвращает, какая-либо помощь?

<?php while ($browndog_blog->have_posts()) : $browndog_blog->the_post();                    
    $args = array(
    'numberposts' => 1,
    'post_mime_type' => 'image',
   'post_parent' => $post->ID,
    'post_status' => null,
    'post_type' => 'attachment'
    );

    $attachments = get_children( $args );

    //print_r($attachments);

    if ($attachments) {
        foreach($attachments as $attachment) {
            $image_attributes = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' )  ? wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) : wp_get_attachment_image_src( $attachment->ID, 'full' );

            echo '<a href="'.get_permalink($post->ID).'"><img src="'.wp_get_attachment_thumb_url( $attachment->ID ).'"></a>';
            echo '<p>'.get_the_excerpt($post->ID).'</p>';
            echo '<p><a href="'.get_permalink($post->ID).'">Read More</a></p>';
        }
    }
endwhile; ?>

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

Ответы [ 2 ]

1 голос
/ 01 мая 2013

get_children() возвращает только изображения, которые были загружены непосредственно в этот пост. Если изображение было прикреплено к данному сообщению, оно не будет считаться дочерним, и поэтому не будет возвращено вышеупомянутой функцией.

Простой способ проверить детей сообщения - войти в панель управления и перейти к сообщениям, редактировать сообщения. Нажмите кнопку Add Media над редактором и в единственном раскрывающемся списке выберите Uploaded to this post. Если это поле пусто, get_children не будет возвращать изображения независимо от содержания сообщения.

0 голосов
/ 14 ноября 2011

Я думаю, что я сделал то же самое, что и вы ... Я не буду претендовать на звание гуру, но вот что я сделал, чтобы заставить это работать, и, если вам повезет, вы сможете адаптировать егок вашим потребностям.

$image_id=get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id,’large’);
$image_url=$image_url[0];

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...