/ Сайтостроение / Wordpress / Вложения записи (Attachment)

Вложения записи (Attachment)

24.02.2016

836

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

Вывести вложенные в запись изображения

Все вложения, включая миниатюру (если она тоже вложенная)

<!-- вложенные файлы с миниатюрой -->
<?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>

Поделится информацией с друзьями

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Вложения записи (Attachment)
Подключаем КЛАДР
Рекомендации для васПодключаем КЛАДРOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.