質問編集履歴
2
失礼な点がありました。申し訳ありません。image_resizeをWP_Image_Editorに置き換えました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,8 +12,8 @@
|
|
12
12
|
|
13
13
|
### 発生している問題・エラーメッセージ
|
14
14
|
25行目 空配列に(イメージサイズをすべて初期化)して、29行目からメタデータ追加(入れ直し)しているのはなぜなのでしょうか?
|
15
|
-
27行目 正規表現 !^image/!
|
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 =
|
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
誤字の修正
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
|
コードの内容がわからなかったため、一つずつ調べたのですが、どうしてもわからない部分があったため、質問させてください。
|