Получение картинок прикрепленных к посту в WORDPRESS
29.01.10 / Категории Uncategorized | Комментарий 4Итак как же получить картинки поста в WordPress. Это касается не только картинок но и к примеру прикрепленных flv файлов и других документов.
В общем получается все это следующим образом.
<?php $images = get_children( array( 'post_parent' => $postID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image' ) ); if($images) { foreach ( $images as $id => $image ) { $img = wp_get_attachment_url( $image->ID ); echo '<img src="'.$img.'" alt="" />'; } } ?>
Этот код получает и выводит все изображения прикрепленные к посту с id = $postID
Для того чтобы отсортировать изображения в соответствии с menu_order (очередь) значением, которое вы можете менять в окне Gallery(Галерея) поста.
Нужно определить и выполнить после получения изображений функцию.
<?php function menuOrderCompare($a, $b) { if ( $a->menu_order === $b->menu_order) { return 0; } return ( $a->menu_order < $b->menu_order) ? -1 : 1; } ?>
Вот код получения изображений с сортировкой по полю menu_order.
<?php function menuOrderCompare($a, $b) { if ( $a->menu_order === $b->menu_order){ return 0; } return ( $a->menu_order < $b->menu_order) ? -1 : 1; } $images = get_children( array( 'post_parent' => $postID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image' ) ); if($images) { usort($images, "menuOrderCompare"); foreach ( $images as $id => $image ) { $img = wp_get_attachment_url( $image->ID ); echo '<img src="'.$img.'" alt="" />'; } } ?>
Замените ‘post_mime_type’ => ‘image’ на ‘post_mime_type’ => ‘video’ и вы получите прикрепленные ролики.
Кстати flv ролик может иметь как video mime type, так и application mime type.
Вы можете сослаться на эту статью:
http://www.rantiev.com/post-attached-images/trackback/
а подскажите пожалуйста а как вывести перевью?
Используйте функцию the_post_thumbnail, вот описание параметров the_post_thumbnail()
Мне надо открепить картинку от поста.
Уточняю. В посте эта картинка показывается, но не должна показыватся во встроенной галереи. Надо исключить картинку из галереи. И вобще разрушить эту связь картинки с постом.
Если вы используете встроенный шорткод [gallery] в своих постах. Попробуйте перейти в HTML вид и дописать там exlude=”" [gallery exclude="21"] (21 – это ID картинки, узнать его можно к примеру, если найти картинку в галерее, навести на нее мышь и посмотреть в строку браузера где отображается ссылка, в строке со ссылкой будет id=xxxx). Тут как и всегда важно знать какая у вас версия WP.