Как получить подпись вложения (get_the_excerpt возвращает цитату родительской записи)?

28 окт. 2011 г., 20:57:01
Просмотры: 15K
Голосов: 4

Я вывожу вложения на странице родительской записи с помощью этого кода:

        $args = array('post_type' => 'attachment', 'post_mime_type' => 'image', 'order'=> 'ASC', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); 
        $attachments = get_posts($args);
        if ($attachments) {
            foreach ( $attachments as $attachment ) {
            $attachments_url[] = $my_image;
            $attachments_caption[] = get_the_excerpt();
            }
        }

Проблема в том, что функция get_the_excerpt() возвращает цитату родительской записи, а не подпись вложения.

Знаете ли вы, как вывести подписи вложений? Спасибо.

2
Комментарии

автоматический ответ. $attachments_caption[] = $attachment->post_excerpt; работает

rogaroga rogaroga
28 окт. 2011 г. 21:19:27

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

Chip Bennett Chip Bennett
28 окт. 2011 г. 22:23:40
Все ответы на вопрос 3
0

get_the_excerpt() должен нормально работать для получения описания.

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

Вам нужно использовать setup_postdata(), чтобы это заработало.

Другой способ может быть таким:

get_post_field('post_excerpt', $attachment->ID);
30 окт. 2011 г. 23:14:09
1

Вы можете использовать wp_prepare_attachment_for_js( $id ) для получения всех необходимых данных о вложении.

Функция вернет массив со следующими элементами:

  • id
  • title
  • filename
  • url
  • link
  • alt
  • author
  • description
  • caption
  • name
  • status
  • uploadedTo
  • date
  • modified
  • menuOrder
  • mime
  • type
  • subtype
  • icon
  • dateFormatted
  • nonces
  • editLink
  • sizes
  • width
  • height
  • fileLength
  • compat

Подробнее в Кодексе: wp_prepare_attachment_for_js()

26 авг. 2014 г. 15:40:28
Комментарии

Добро пожаловать на WPSE. Ответы, содержащие только ссылки, не считаются качественными. Пожалуйста, добавьте соответствующий код/примеры/описание из ссылки, а саму ссылку оставьте для дополнительной информации и указания авторства.

Pieter Goosen Pieter Goosen
26 авг. 2014 г. 15:52:04
0
-1

Это решит вашу проблему

$attachments = attachments_get_attachments();
$total_attachments = count( $attachments );
if( $total_attachments ){
 for( $i=0; $i<$total_attachments; $i++ ){
     echo $attachments[$i]['title']; // вывод заголовка вложения
     echo $attachments[$i]['caption']; // вывод подписи вложения
     echo $attachments[$i]['id']; // вывод ID вложения
     echo $attachments[$i]['location']; // вывод расположения файла
     echo $attachments[$i]['mime']; // вывод MIME-типа
     echo $attachments[$i]['filesize']; // вывод размера файла
 }
}
30 нояб. 2011 г. 21:46:54