質問編集履歴

2

失礼な点がありました。申し訳ありません。image_resizeをWP_Image_Editorに置き換えました。

2022/12/22 06:23

投稿

mumu1354
mumu1354

スコア18

test CHANGED
File without changes
test CHANGED
@@ -12,8 +12,8 @@
12
12
 
13
13
  ### 発生している問題・エラーメッセージ
14
14
  25行目 空配列に(イメージサイズをすべて初期化)して、29行目からメタデータ追加(入れ直し)しているのはなぜなのでしょうか?
15
- 27行目 正規表現 !^image/! の意味がわからない MINEタイプ画像(例 image/jpegやimage/png)がなぜ通るのかわかないです。
15
+ 27行目 正規表現 !^image/!  MINEタイプ画像(例 image/jpegやimage/png)がなぜ通るのかわかないです。
16
- 95行目 $resized_fileを上書きする理由がわからないです。(上書き前も上書き後も同じ内容なのに)
16
+ 95行目 $resized_fileを上書きする理由がわからないです。(上書き前も上書き後も同じ内容なのに)コードの内容がわからないです。
17
17
 
18
18
 
19
19
  ### 該当のソースコード
@@ -43,10 +43,10 @@
43
43
  $uploadPath = wp_upload_dir();//upload ディクレトリの URL を取得する
44
44
  //アップロードしたファイルのサーバー内の絶対パス
45
45
  $file = path_join($uploadPath['basedir'], $metadata['file']);// パス名を連結する(サブディレクトリを含まないパス,現在定義されている uploads ディレクトリーからの画像(添付ファイル)の相対パス。)
46
+ error_log(var_export($metadata, true), 3, "./debug.txt");
46
47
  $metadata = array();//空配列に(イメージサイズをすべて初期化)なぜ?
47
48
  //先頭にimage/ある場合=画像だったら,get_post_mime_type()でimage/jpegやimage/pngで返ってくる?
48
49
  if ( preg_match('!^image/!', get_post_mime_type( $attachment )) && file_is_displayable_image($file) ) {
49
- error_log(var_export($attachment, true), 3, "./debug.txt");
50
50
  $imagesize = getimagesize( $file );// 画像の大きさを取得する
51
51
  //メタデータ追加(入れ直しなぜ?)
52
52
  $metadata['width'] = $imagesize[0];//画像の幅
@@ -93,6 +93,7 @@
93
93
  $metadata['image_meta'] = $image_meta;
94
94
 
95
95
  }
96
+ error_log(var_export($metadata, true), 3, "./debug2.txt");
96
97
  return $metadata;
97
98
  }
98
99
  function hack_image_make_intermediate_size( $file, $width, $height, $crop = false, $size = "" ) {
@@ -109,7 +110,25 @@
109
110
  }
110
111
  }
111
112
  //コアファイルを触らずにサムネイル(jpg)のクオリティ値を変えられます。デフォルトは90。
113
+ $resized_img = wp_get_image_editor( $file );
114
+ $destfilename = $file;
115
+ if ( ! is_wp_error( $resized_img) ) {
116
+ $_filenameArr = explode( '/', $file );
117
+ if ( is_array( $_filenameArr ) ) {
118
+ $name = array_pop( $_filenameArr );
119
+ $dir = implode( '/', $_filenameArr );
120
+ // ファイル名から拡張子を取得
121
+ $_filenameArr = explode( '.', $name );
122
+ $ext = array_pop( $_filenameArr );
123
+ // リサイズ後のファイル名
124
+ $destfilename = "{$dir}/{$_filenameArr[0]}-{$suffix}.{$ext}";
125
+ // リサイズして保存
126
+ $resized_img->set_quality( 90 );
127
+ $resized_img->resize( $width, $height, $crop );
128
+ $resized_img->save( $destfilename );
129
+ }
130
+ }
112
- $resized_file = image_resize( $file, $width, $height, $crop, $suffix, null, 90 );//(画像ファイルのパス,サイズを変更する最大幅,サイズを変更する最大の高さ,画像をトリミングするか,ファイル名に追加する文字列,新しい画像ファイルのパス,画質のパーセンテージ)
131
+ $resized_file = $destfilename;//(画像ファイルのパス,サイズを変更する最大幅,サイズを変更する最大の高さ,画像をトリミングするか,ファイル名に追加する文字列,新しい画像ファイルのパス,画質のパーセンテージ)
113
132
  //渡された変数が WordPress Error であるかチェックします
114
133
  if ( !is_wp_error( $resized_file ) && $resized_file && $info = getimagesize( $resized_file ) ) {
115
134
  //image_make_intermediate_size=画像をリサイズしてサムネイルや中間サイズにします?(なぜ?)
@@ -123,8 +142,7 @@
123
142
  }
124
143
  }
125
144
  return false;
126
- }
127
- ?>
145
+ }?>
128
146
  ```
129
147
 
130
148
  ### 試したこと

1

誤字の修正

2022/12/22 03:00

投稿

mumu1354
mumu1354

スコア18

test CHANGED
File without changes
test CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提
2
2
  独学者です。
3
3
  [https://teratail.com/questions/122515](https://teratail.com/questions/122515) と同じことがしたいため
4
- 解答欄にある [GitHub](https://github.com/creatorish/thumbnail-filename-changer) の [thumbnail-filename-changer.php](https://raw.githubusercontent.com/creatorish/thumbnail-filename-changer/master/thumbnail-filename-changer.php)を利用しました。
4
+ 解答欄にある [GitHub](https://github.com/creatorish/thumbnail-filename-changer) の [thumbnail-filename-changer.php](https://raw.githubusercontent.com/creatorish/thumbnail-filename-changer/master/thumbnail-filename-changer.php)を利用しました。
5
5
 
6
6
 
7
7
  コードの内容がわからなかったため、一つずつ調べたのですが、どうしてもわからない部分があったため、質問させてください。