如何为Customizer中上传的图像获取自定义图像大小

时间:2016-12-23 作者:Troy Templeman

我正在使用自定义程序上载图像。下面的代码显示的是完整大小的图像,但我想显示我在下面创建的图像的自定义大小。

这是我的模板文件中的代码:

<img src="<?php echo get_theme_mod( \'image-1\' , get_template_directory_uri().\'/images/default.jpg\' ); ?>">
这是我的functions.php 要添加自定义大小的文件:

add_image_size( \'image-thumbnail\', 525, 350, true ); 

2 个回复
SO网友:cjbj

显然,您的mod将图像的完整路径存储为字符串。除了搜索并替换字符串外,您别无选择:

$img = get_theme_mod(\'image-1\');
if (!empty ($img)) {
  $img = preg_replace (\'.(jpg|jpeg|png|gif)$\',\'-525x350$0\');
  if (!file_exists($img)) $img = get_template_directory_uri().\'/images/default.jpg\';
    }
  else if (!file_exists($img)) $img = get_template_directory_uri().\'/images/default.jpg\';
用文字表示。获取mod。如果存在,请搜索$img 对于发生的jpg|jpeg|png|gif 在字符串的末尾,然后在其前面加上图像大小,例如...image-525x350.jpg. 如果该文件不存在,请使用默认值。如果没有mod,也使用默认值。

SO网友:coll

根据cjbj的回答,您可能需要添加分隔符以使preg\\u replace正常工作:

$img = get_theme_mod(\'image-1\');
if (!empty ($img)) {
  $img = preg_replace (\'/.(jpg|jpeg|png|gif)$/\',\'-525x350$0\');
  if (!file_exists($img)) $img = get_template_directory_uri().\'/images/default.jpg\';
  }
else if (!file_exists($img)) $img = get_template_directory_uri().\'/images/default.jpg\';