カスタマイザを使用して画像をアップロードしています。以下のコードはフルサイズの画像でも問題ありませんが、その下に作成した画像のカスタムサイズを代わりに表示したいと思います。
これは私のテンプレートファイルのコードです:
<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 );
どうやら、あなたの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がない場合は、デフォルトも使用してください。
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';