На самом деле я работаю в блоге обоев и хочу предоставить возможность загружать изображения с разными размерами обоев, которые содержатся в библиотеке мультимедиа.
До сих пор я делал следующие вещи:
добавив следующий код в файл attachment.php, который я нашел на этом сайте: https://premium.wpmudev.org/blog/advanced-attachment-page/
<p class='resolutions'> Downloads:
<?php
$images = array();
$image_sizes = get_intermediate_image_sizes();
array_unshift( $image_sizes, 'full' );
foreach( $image_sizes as $image_size ) {
$image = wp_get_attachment_image_src( get_the_ID(), $image_size );
$name = $image_size . ' (' . $image[1] . 'x' . $image[2] . ')';
$images[] = '<a href="' . $image[0] . '">' . $name . '</a>';
}
echo implode( ' | ', $images );
?>
</p>
С помощью этого решения я получаю хорошую страницу с вложением, с изображением предварительного просмотра и ссылками на все размеры этого изображения. Это уже хорошо, но недостаточно хорошо для меня.
Я хотел бы исключить некоторые размеры изображений, такие как «миниатюра», «средний», «большой» и некоторые дополнительные размеры, которые я использовал для стилизации в рамках темы.
Кто-нибудь знает, как исключить эти размеры или наоборот, чтобы выбрать только те размеры, которые необходимы для загрузки?
Заранее спасибо за любую идею, которая может решить эту проблему
Вы можете использовать эту функцию WordPress для объявления новых размеров изображений:
https://developer.wordpress.org/reference/functions/add_image_size/
Пример:
add_image_size (‘large’, 1200, 600);
add_image_size (‘superlarge’, 2400, 1200);
Тогда вы можете использовать любой из размеров тезисов, используя:
https://codex.wordpress.org/Function_Reference/the_post_thumbnail
the_post_thumbnail (‘superlarge’);
Чтобы восстановить все ваши эскизы, используйте плагин Regenerate Thumbnails.
Я нашел решение сам. Чтобы выбрать только определенные размеры изображения, они должны быть указаны в массиве image_sizes следующим образом:
<?php the_content(); ?>
<p class='resolutions'> Downloads:
<?php
$images = array();
$image_sizes = array ('image1', 'image5', 'image9');
foreach( $image_sizes as $image_size ) {
$image = wp_get_attachment_image_src( get_the_ID(), $image_size );
$name = $image_size . ' (' . $image[1] . 'x' . $image[2] . ')';
$images[] = '<a href="' . $image[0] . '">' . $name . '</a>';
}
echo implode( ' | ', $images );
?>