しばらくの間、WordPress プラグインのバグの解決策を見つけようとしています (開発者からの応答を得ることができませんでした)。プラグインはImageFXと呼ばれます。
基本的には、WordPress にアップロードされた画像の画像効果を作成します。画像をグレースケールに変換するために使用しています。ただし、ページを作成して保存し、後で戻って注目の画像をページに追加しようとすると、その画像では ImageFX 画像が作成されません。ここで同じ問題を抱えている人を見ることができます。
エラーを再現する方法:
- ページを作成
- おすすめのサムネールとパブリッシュ ページをアップロードして設定します (= ImageFX プロデューサーが新しいサムネールを正しく作成します)。
- しばらくお待ちください(1日だと思います)。次に、おすすめの親指を削除し、ギャラリーから if を削除します。
- 新しいサムネイルをアップロードします ( = ImageFX によって作成された新しいサムネイルはありません)。
または、古い投稿/ページに画像をアップロードしてみてください。ImageFX サムネイルは作成されません。
私の推測では、これは問題のあるコードです。ここでファイル全体を見ることができます。
add_filter( 'wp_generate_attachment_metadata', 'imagefx_filter' );
/**
* Creates all ImageFX intermediate sizes of the image based on imagefx_options
*
* @param mixed $meta Metadata for attachment.
* @return mixed $meta Modified metadata for attachment.
*/
function imagefx_filter( $meta ) {
global $imagefx_filters;
$options = get_option( 'imagefx_options' );
foreach ( $meta['sizes'] as $size => $info ) {
if ( empty( $options['filter'][$size] ) ) continue;
$filter = $options['filter'][$size];
if ( empty( $imagefx_filters[$filter] ) ) continue;
$callback = $imagefx_filters[$filter];
$file = wp_upload_dir();
$file = trailingslashit( $file['path'] ) . $info['file'];
list( $orig_w, $orig_h, $orig_type ) = @getimagesize( $file );
if ( IMAGETYPE_JPEG === $orig_type || apply_filters( 'imagefx_image_type', false, $orig_type ) ) {
$image = wp_load_image( $file );
$callback( $image );
$slug = $options['slug'][$size];
if ( ! empty( $slug ) ) {
$newfile = substr( $file, 0, -4 ) . '-' . $slug . substr( $file, -4 );
$info['file'] = substr( $info['file'], 0, -4 ) . '-' . $slug . substr( $info['file'], -4 );
} else {
$newfile = $file;
}
if ( IMAGETYPE_JPEG == $orig_type )
imagejpeg( $image, $newfile );
do_action( 'imagefx_image_create', $image, $newfile, $orig_type );
$meta['sizes'][$size]['file'] = $info['file'];
}
}
return $meta;
}