Как получить изображения, прикрепленные к записи

14 июл. 2011 г., 18:53:57
Просмотры: 14.3K
Голосов: 5

Можно ли программно получить изображения, прикрепленные к записи? Я работаю над пользовательским шаблоном (моим первым) и мне нужно отображать изображения из записи определенным способом (первое изображение как заглавное, а остальные только в скрытых тегах img, которые будут видны через лайтбокс-слайдер).

Существует ли какая-то функция типа get_post_attachments('type'=>'image'), результат которой я мог бы перебрать в цикле?

Спасибо за помощь

0
Все ответы на вопрос 3
1

Вы можете использовать функцию get_posts() (Ссылка на Codex для получения вложений записи).

<?php
$args = array( 
    'post_type' => 'attachment', 
    'post_mime_type' => 'image',
    'numberposts' => -1, 
    'post_status' => null, 
    'post_parent' => $post->ID 
); 
$attached_images = get_posts( $args );
?>
14 июл. 2011 г. 19:09:37
Комментарии

мы сегодня очень синхронизированы :)

mike23 mike23
14 июл. 2011 г. 19:11:23
1

Этот код получает все изображения, прикреплённые к записи:

$args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_mime_type' => 'image', 'post_parent' => $post->ID ); 
$attachments = get_posts( $args );
if ( $attachments ) {
    foreach ( $attachments as $attachment ) {
    ...делаем что-то
    }
}

Также ознакомьтесь с функцией wp_get_attachment_image() и связанными функциями, это поможет вам начать работу.

14 июл. 2011 г. 19:09:31
Комментарии

Жутковато, правда. :)

Chip Bennett Chip Bennett
14 июл. 2011 г. 19:17:24
0

Обратите внимание, что поле post_parent НЕ регистрирует изображение, если оно не загружается и не добавляется к записи одновременно.

Это означает, что любое изображение, уже загруженное в медиатеку, будет иметь значение 0 (ноль) в поле post_parent, даже если оно прикреплено к записи.

Это неудобно. Единственный способ получить ВСЕ прикрепленные к записи изображения — это разобрать HTML-код и извлечь теги <img> из содержимого.

21 мар. 2023 г. 23:40:52