Вложенными считаются файлы, которые были загружены (или привязаны через медиабиблиотеку) для данной страницы.
Если файл уже привязан к какой либо странице, то вкладывая его в другую страницу, он будет считаться привязанным к первой.
Вывести вложенные в запись изображения
Все вложения, включая миниатюру (если она тоже вложенная)
<!-- вложенные файлы с миниатюрой -->
<?php
$images = get_attached_media('image', $post->ID);
foreach($images as $image) : ?>
<a href="<?php echo wp_get_attachment_image_url($image->ID, 'full'); ?>"><img src="<?php echo wp_get_attachment_image_url($image->ID, 'thumbnail'); ?>" /></a>
<?php endforeach; ?>
Все вложения, кроме миниатюры (если она тоже вложенная)
<!-- вложенные файлы, кроме миниатюры -->
<?php $attachments = get_posts( array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_parent' => $post->ID,
'exclude' => get_post_thumbnail_id()
) );
if ( $attachments ) : ?>
<?php foreach ( $attachments as $attachment ) : ?>
<?php $thumbimg = wp_get_attachment_link( $attachment->ID, 'thumbnail'); ?>
<?php echo $thumbimg ; ?>
<?php endforeach; ?>
<?php endif; ?>
Страница вложения
WordPress автоматически для каждого изображения формирует страницу вложения. Если изображения привязаны к конкретной записи, то страницы вложения переадресуются на саму запись. Но если изображения вгружены в админку и не привязаны ни к одной из записей, то они будут формировать страницы вида: site.ru/nazvanie-izo (название изображения). Такие страницы попадают в индекс (что плохо) и их никак не закрыть правилами robots.txt. Закрываем их от индексации таким образом:
//запрет индексирования страниц вложений
function wph_noindex_for_attachment() {
if(get_post_mime_type()!= false) {
echo '<meta name="robots" content="noindex, nofollow" />'.PHP_EOL;
}
}
add_action('wp_head', 'wph_noindex_for_attachment');
Ссылка на исходное изображение миниатюры
Если мы делаем например галерею в виде изображений-постов, то в ссылке необходимо указывать ссылку на оригинал изображения:
<?php $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'has_post_thumbnail' );
$url = $thumb['0']; ?>
<a href="<?php echo $url; ?>"><?php the_post_thumbnail('rectangle'); ?></a>
Получить дату вложения файла
<?php echo get_the_date('d M Y', get_post_thumbnail_id()); ?>
[site-socialshare]