更改 WordPress 画廊图像默认大小

问题描述 投票:0回答:3

我想知道是否有人可以帮助解决我的问题

我从某人那里得到了这段代码,运行良好,只是尺寸不起作用,默认值始终为“缩略图”

function my_gallery_default_type_set_link( $settings ) {
    $settings['galleryDefaults']['link'] = 'file';
    $settings['galleryDefaults']['columns'] = '4';
    $settings['galleryDefaults']['size'] = 'large';
    return $settings;
}
add_filter( 'media_view_settings', 'my_gallery_default_type_set_link');

如何使其始终默认为大?

php wordpress
3个回答
1
投票

这段代码实际上是有效的,如果没有手动选择其他尺寸,图库的尺寸将默认为“大”。真正的问题来自下拉列表本身,它在初始化时没有正确设置,仍然在 WP 4.8.2 中。

有一个打开的ticket,其中包含有关此显示错误的更多详细信息。

与此同时,我找到了使用 print_media_templates 挂钩的解决方法:

第 1 步 - 定义图库默认图像尺寸

function my_gallery_default_settings( $settings ) {
    $settings['galleryDefaults']['size'] = 'large';
    return $settings;
}
add_filter( 'media_view_settings', 'my_gallery_default_settings');

第 2 步 - 调试下拉图像大小默认值

function debug_gallery_image_size_default_value() {
  ?>

  <script>
    jQuery(document).ready(function(){
      wp.media.view.Settings.Gallery = wp.media.view.Settings.Gallery.extend({
        template: function(view){
          var base_view = wp.media.template('gallery-settings')(view);
          var size_option_search = '<option value="'+wp.media.gallery.defaults.size+'">';
          var size_option_replace = '<option value="'+wp.media.gallery.defaults.size+'" selected="selected">';
          base_view = base_view.replace(size_option_search, size_option_replace);
          return base_view;
        }
      });
    });
  </script>

  <?php
}
add_action('print_media_templates', 'debug_gallery_image_size_default_value');

0
投票

为什么要使用别人的自定义代码?已经有一个带有尺寸选项的图库简码:

https://codex.wordpress.org/Gallery_Shortcode

只需用

[gallery size="thumbnail"]
来调用即可。


0
投票

实际上,其他答案中的其他代码替换了现有画廊的默认设置。以下是将默认设置仅应用于新图库的代码:

add_filter( 'media_view_settings', 'theme_gallery_defaults', 10, 2 );

function theme_gallery_defaults( $settings, $post ) {
    $defaults = ! empty( $settings['galleryDefaults'] ) && is_array( $settings['galleryDefaults'] ) ? $settings['galleryDefaults'] : array();
    $settings['galleryDefaults'] = array_merge( $defaults, array(
        'columns'   => 5,
        'size'      => 'large',
        'link'      => 'file'
    ) );
    return $settings;
}
© www.soinside.com 2019 - 2024. All rights reserved.