it-swarm.com.ru

Как получить пользовательский размер изображения для загруженного в Customizer

Я использую настройщик для загрузки изображения. Приведенный ниже код показывает полноразмерное изображение, но вместо этого я хотел бы отобразить нестандартный размер изображения, которое я создал под ним.

Это код в моем файле шаблона:

<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 ); 
1
Troy Templeman

Видимо, ваш мод хранит полный путь к изображению в виде строки. Это оставляет вам небольшую альтернативу, кроме поиска и замены в строке:

$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';

Прописью. Получить мод. Если он существует, найдите в $img вхождение jpg|jpeg|png|gif в конце строки, а затем добавьте в него размер изображения, например, ...image-525x350.jpg. Если этот файл не существует, используйте по умолчанию. Если нет мода, также используйте по умолчанию.

4
cjbj

Исходя из ответа cjbj, вам может потребоваться добавить разделители для корректной работы preg_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';
0
Coll