Поддержка Проблемы и решения Адреса картинок при заливке

  • Решено oleglaz

    (@oleglaz)


    Добрый день! Возникла следующая проблема: если через админку закачивать картинку, то создаётся ещё маленькая превьюшка этой картинки. Например я заливаю sp4031811.jpg, у меня в папке uploads появляется ещё картинка: sp4031811-300×225.jpg. Понадобилось мне получить адреса превьюшек, для вывода на разводящих страницах. Просто добавлять -300×225 к имени не получится, так как заливаются картинки разных размеров, соответственно и масштабируется в разные. Отсюда возникает следующий вопрос: Как подкрутить движок таким образом, чтобы при изменении размеров картинки, она сохранялась с другим именем, например sp4031811-small.jpg? Чтобы зная адрес большой картинки, легко можно было бы узнать адрес превьюшки.

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Если известно имя файла картинки — наверное, известен и её ID? В этом случае можно воспользоваться функцией wp_get_attachment_image:
    http://codex.wordpress.org/Function_Reference/wp_get_attachment_image
    Второй параметр — требуемый размер: например, thumbnail или medium.

    Автор oleglaz

    (@oleglaz)

    Попробовал, что-то не хочет работать:

    <?php while (have_posts()) : the_post(); ?>
    		<div class="post" id="post-<?php the_ID(); ?>">
    			<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
    			<p><?php the_content('Перейти к полной информация об объекте...'); ?>
    
    			<?php echo wp_get_attachment_image( $post->ID, 'thumbnail' ); ?>
    
    			<!--<div class="post-details">--><h3>Опубликовано <?php the_time() ?>. </p><a href="<?php the_permalink() ?>#comments"><?php comments_number('Добавить отзыв','1 отзыв','% отзыва(ов)'); ?></a></h3><!--</div>-->
    
    		</div>
    	<?php endwhile; ?>

    Просто ничего не потдаёт 🙁

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Попробуйте так (внутри главного цикла):

    <?php
    	$attachments = get_children( array('post_type' => 'attachment', 'post_mime_type' => 'image', 'post_parent' => $post->ID) );
    
    	if ( !empty($attachments) ) {
    		foreach ( $attachments as $id => $attachment ) {
    			echo wp_get_attachment_image($id, 'thumbnail');
    		}
    	}
    ?>

    Автор oleglaz

    (@oleglaz)

    Спасибо большое, так получилось. А я уж, хотел в движок лезть 🙂

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Адреса картинок при заливке» закрыта для новых ответов.