获取媒体库中的图像缩略图大小URL

时间:2019-06-22 作者:DACrosby

WordPress可以生成多个缩略图大小,并在主题中添加自定义图像大小非常好,但是有没有办法在WP中查看给定图像的所有URL,最好是在媒体库弹出窗口中查看?

当前,如果我想要图像的“大”缩略图URL,我必须编辑/添加页面/帖子,将图像添加到页面,查看文本编辑器,并将URL从插入的<img src="goal_url.jpg" />. 不太方便!

例如,我会使用它在社交媒体上共享特定的图像裁剪,或者在没有正确使用媒体库的主题/插件中粘贴正确的URL。

WP在媒体弹出窗口中提供完整的url src,我也在寻找缩略图大小。

2 个回复
SO网友:DACrosby

这是我想出的解决方案-它将WP的默认完整URL输入替换为媒体库弹出窗口中提供的任何缩略图大小的列表。

add_action( \'print_media_templates\', \'ezific_media_tmpl_image_thumbnail_urls\' );
function ezific_media_tmpl_image_thumbnail_urls() {

/* // The prior URL HTML; /wp-includes/media-template.php
    // found with regex in variable old_html_regex below
<label class="setting" data-setting="url">
                    <span class="name">Copy Link</span>
                    <input type="text" value="{{ data.url }}" readonly />
                </label>
                */
    ?>
    <script>
        jQuery( document ).ready( function( $ ){
            var text = "",
                old_html_regex = /<label class="setting" data-setting="url">.*<\\/label>/gms,
                the_url_list = jQuery( "script#ezific-tmpl-attachment-url-list" ).text(),
                existing_tmpls = jQuery( "script#tmpl-attachment-details-two-column, script#tmpl-attachment-details" );

            // Loop through the script elements and swap in the new HTML
            existing_tmpls.each(function() {
                text = jQuery(this).text();
                text = text.replace( old_html_regex, the_url_list );
                jQuery(this).text( text );
            });

            // Add show/hide toggle
            jQuery( "body" ).on("click", "#ezific-toggle-urls", function(e){
                e.preventDefault();
                jQuery( "#ezific-image-urls-hold" ).toggle();
            });
        });
    </script>

    <script type="text/template" id="ezific-tmpl-attachment-url-list">
        <div class="setting" id="ezific-image-urls">
            <a href="#" id="ezific-toggle-urls">Show All URLS</a>
            <div id="ezific-image-urls-hold" style="display: none;">
                <?php
                $sizes = apply_filters( \'image_size_names_choose\', array(
                    \'thumbnail\' => __(\'Thumbnail\'),
                    \'medium\'    => __(\'Medium\'),
                    \'large\'     => __(\'Large\'),
                    \'full\'      => __(\'Full Size\'),
                ) );
                foreach ( $sizes as $value => $name ) : ?>
                    <#
                    var size = data.sizes[\'<?php echo esc_js( $value ); ?>\'];
                    if ( size ) { #>
                    <span class="setting">
                        <label for="attachment-details-copy-link-<?php echo esc_attr( $value ); ?>" class="name" style="float:left;"><?php echo esc_attr( $name ); ?></label>
                        <input type="text" id="attachment-details-copy-link-<?php echo esc_attr( $value ); ?>" value="{{ size.url }}" readonly />
                    </span>
                    <# } #>
                <?php endforeach; ?>
            </div>
        </div>
    </script>

    <?php
}
基本思想是覆盖WordPress提供的媒体模式布局模板(可在中找到/wp-includes/media-template.php.

我们加入print_media_templates 在中显示多个HTML模板<script> 我相信主干网将使用的元素。js。具体而言,我们关心script#tmpl-attachment-details-two-columnscript#tmpl-attachment-details 模板。

我们添加了一个新模板(此处,script#ezific-tmpl-attachment-url-list") 它保存HTML以显示图像大小。此代码段使用image_size_names_choose hook 过滤显示的缩略图大小。

然后,只需从WordPress提供的模板中获取模板文本,在我们的新HTML中使用regex替换,WordPress并不明智,它会在最初只显示完整URL的位置显示我们的新图像大小。

我还添加了一个快速链接来显示/隐藏链接,因为理论上列表可能会很长。

SO网友:Rick Hellewell

我有一个为多站点制作的插件,但它也应该适用于单个站点。它将媒体库中的所有pix显示为缩略图。如果您有管理员权限,请单击pix进入编辑页面。

我用它来检查我的多站点上的图片,因此如果需要,我可以进行旋转(并去掉任何不符合站点TOS的pix)。要指定的选项很多。使用页面上的短代码进行显示。

称为多站点媒体显示。我写的其他文章显示了所有帖子。还有更多。使用插件支持区域解决任何问题。https://wordpress.org/plugins/multisite-media-display/ . 免费,无隐藏/高级功能。

相关推荐

Use wget to find used images

我正在寻找方法来清理一个站点的图像目录,该站点已经被未使用的图像和缩略图超载。是否可以使用wget只下载站点上html页面引用的图像?我注意到可以浏览下载文件夹并查看列出的文件,所以我假设直接的wget-r将下载这些文件。如何使用wget,但不包括对上传目录进行爬网?