提供下载时的特定图像尺寸(壁纸网站)

时间:2015-12-01 17:20:37

标签: php wordpress image download wallpaper

我实际上在壁纸博客上工作,我想提供下载媒体库中包含的不同,特定壁纸大小的图像的可能性。

到目前为止,我做了以下事情:

  • 创建子主题
  • 向functions.php添加一些额外的壁纸图片大小
  • 安装插件“手动图像裁剪”,允许我单独裁剪所有可用的图像尺寸(链接到插件:https://de.wordpress.org/plugins/manual-image-crop/
  • 将壁纸图片包含在帖子中并选择“链接到附件文件”
  • 将“attachment.php”与一些样式添加到我的孩子主题中。
  • 将以下代码添加到我在本网站上找到的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>
    
                   

通过这个解决方案,我得到了一个很好的附件页面,预览图像链接到该图像的所有大小。多数民众赞成已经很好,但对我来说还不够好。

我想排除一些图片尺寸,例如“thumbnail”,“medium”,“large”以及我在主题中用于样式设计的一些额外尺寸。

有人知道如何排除这些尺寸或反过来,只选择下载所需的尺寸吗?

提前感谢任何可能解决该问题的想法

2 个答案:

答案 0 :(得分:0)

您可以使用wordpress的此功能声明新的图像尺寸: https://developer.wordpress.org/reference/functions/add_image_size/

例如:

add_image_size(&#39; large&#39;,1200,600); add_image_size(&#39; superlarge&#39;,2400,1200);

然后您可以使用以下任何一种尺寸: https://codex.wordpress.org/Function_Reference/the_post_thumbnail

the_post_thumbnail(&#39; superlarge&#39;);

要重新生成所有缩略图,请使用“重新生成缩略图”插件。

答案 1 :(得分:0)

我自己找到了解决方案。要仅选择特定的图像大小,必须在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 );
            ?>