質問: ### 前提・実現したいこと wordの「ブログ投稿」機能を使用してwordpressに記事をアップしています。 しかし「ブログ投稿」でアップされた画像は「画像を編集」が表示されず、編集できません。 原因、対策をご教授いただけると助かります。 ### 発生している問題・エラーメッセージ wordのブログ投稿機能を経由しアップされた画像は、画像を編集ボタンが表示されずトリミング、回転等ができません。 メディアに直接アップした画像は「画像を編集」ボタンが表示され、編集できます。 ### 試したこと ・ファイルのパーミッションを確認、「666」でした。 ・画像に原因があるのかと思い、通常通りアップしたところ編集できました。 ### 補足情報(FW/ツールのバージョンなど) CONOHA VPSサーバー KUSANAGI wordpress バージョン 5.3.2 使用テーマ cocoon
回答: **原因** Wordに挿入して投稿した画像の`post_mime_type`が`image/jpg`になるため > > > ``` > if ( wp_image_editor_supports( array( 'mime_type' => $post->post_mime_type ) ) ) { > $nonce = wp_create_nonce( "image_editor-$post->ID" ); > $image_edit_button = " "; > } > ``` > > で引っかかり編集ボタンが表示されない。 そして編集可能なファイル形式は以下の3つだけとなっている。 (通常は拡張子が`jpg`のファイルをアップロードしても`jpeg`になるので`image/jpg`を含める必要がなく且つそこまで想定していないからだと思われる) > > > ``` > switch ( $mime_type ) { > case 'image/jpeg': > return ( $image_types & IMG_JPG ) != 0; > case 'image/png': > return ( $image_types & IMG_PNG ) != 0; > case 'image/gif': > return ( $image_types & IMG_GIF ) != 0; > } > ``` > > **対策** 少々強引だが、画像が追加された際に`post_mime_type`を確認して`image/jpg`だったら`image/jpeg`に強制的に書き換えてしまう。 以下のコードをテーマのfunctions.phpに追加するかプラグイン化 ``` add_action( 'add_attachment', function( $post_ID ){ $attachment_data = get_post( $post_ID ); if( $attachment_data->post_mime_type === 'image/jpg' ) { $my_attachment = array( 'ID' => $post_ID , 'post_mime_type' => 'image/jpeg' ); wp_update_post( $my_attachment ); } } ); ```