Правильный способ использования wp_get_attachment_image () в WordPress - PullRequest
5 голосов
/ 22 июня 2010

Я ищу правильный способ использования wp_get_attachment_image ().

Следующий код:

<?php
    $args = array(
        'type' => 'attachment',
        'category_name' => 'portfolio'
        );
    $attachments = get_posts($args);
    print_r($attachments);
?>

Создает следующий результат:

Array
(
    [0] => stdClass Object
        (
            [ID] => 54
            [post_author] => 1
            [post_date] => 2010-06-22 00:32:46
            [post_date_gmt] => 2010-06-22 00:32:46
            [post_content] => <a href="http://localhost/wordpress/wp-content/uploads/2010/06/Capture.jpg"><img class="alignnone size-medium wp-image-55" title="Capture" src="http://localhost/wordpress/wp-content/uploads/2010/06/Capture-300x114.jpg" alt="" width="300" height="114" /></a> 
            [post_title] => Our Own Site
            [post_excerpt] => 
            [post_status] => publish
            [comment_status] => open
            [ping_status] => open
            [post_password] => 
            [post_name] => our-own-site
            [to_ping] => 
            [pinged] => 
            [post_modified] => 2010-06-22 00:40:22
            [post_modified_gmt] => 2010-06-22 00:40:22
            [post_content_filtered] => 
            [post_parent] => 0
            [guid] => http://localhost/wordpress/?p=54
            [menu_order] => 0
            [post_type] => post
            [post_mime_type] => 
            [comment_count] => 0
            [filter] => raw
        )
)

Однако следующее ничего не возвращает.

<?php
    echo wp_get_attachment_image(54, array('300', '300'));
?>

Что я здесь не так делаю?

Ответы [ 3 ]

6 голосов
/ 29 июня 2011

На самом деле я не думаю, что принятый ответ действительно отвечает на вопрос.

Ваша проблема в том, что вы передаете почтовый идентификатор (54 в вашем примере;обычно $post->ID на языке WP) до wp_get_attachment_image().Как видно из кодекса , вы должны использовать идентификатор вложения (см. $attachment_id ниже):

wp_get_attachment_image( $attachment_id, $size, $icon );

Другими словами,Вы должны сделать что-то вроде этого:

$image_attr = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'medium');
1 голос
/ 17 апреля 2016

Функция wp_get_attachment_image может принимать четыре значения, как вы видите:

wp_get_attachment_image ( int $attachment_id, string|array $size = 'thumbnail', bool $icon = false, string|array $attr = '' )

Так что я всегда использую:

<?php echo wp_get_attachment_image( get_the_ID(), array('700', '600'), "", array( "class" => "img-responsive" ) );  ?>

Примечание: мы можем просто использовать get_the_ID () для передачи идентификатора активной записи. а здесь 700 - ширина , а 600 - высота изображения вложения. мы также можем передать наш класс как массив ("class" => "img-responseive")

1 голос
/ 22 июня 2010

Функция wp_get_attachment_image возвращает только изображение, которое было загружено в WordPress, но не выводит изображение в содержании сообщения.

Вы должны вывести содержание сообщения для вашего примера изображения.

Как: echo $attachments['post_content'];

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