wake-up-neo.com

So erhalten Sie die benutzerdefinierte Bildgröße für das im Customizer hochgeladene Bild

Ich verwende den Customizer, um ein Bild hochzuladen. Der Code, den ich unten habe, zeigt das Bild in voller Größe an, aber ich möchte stattdessen eine benutzerdefinierte Größe des Bildes anzeigen, das ich darunter erstellt habe.

Dies ist der Code in meiner Vorlagendatei:

<img src="<?php echo get_theme_mod( 'image-1' , get_template_directory_uri().'/images/default.jpg' ); ?>">

Dies ist der Code in meiner functions.php-Datei, um die benutzerdefinierte Größe hinzuzufügen:

add_image_size( 'image-thumbnail', 525, 350, true ); 
1
Troy Templeman

Anscheinend speichert dein Mod den kompletten Pfad zum Bild als String. Das lässt Ihnen nur eine kleine Alternative, als die Zeichenfolge zu suchen und zu ersetzen:

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

In Worten. Hol dir den Mod. Wenn es existiert, suchen Sie $img nach dem Auftreten von jpg|jpeg|png|gif am Ende der Zeichenkette und stellen Sie der Bildgröße voran, z. B. ...image-525x350.jpg. Wenn diese Datei nicht vorhanden ist, verwenden Sie die Standardeinstellung. Wenn es keinen Mod gibt, verwende auch den Standard.

4
cjbj

Ausgehend von der Antwort von cjbj müssen Sie möglicherweise Trennzeichen hinzufügen, damit preg_replace ordnungsgemäß funktioniert:

$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