私はメディアアップローダーからいくつかのカスタム画像サイズを隠したいです。
次のコード( ここに掲載 )は、デフォルトの画像サイズに対してonlyで動作します。
function remove_image_sizes($sizes) {
unset($sizes['image-name']);
return $sizes;
}
add_filter('image_size_names_choose', 'remove_image_sizes');
カスタム画像サイズの設定を解除するための同様の解決策はありますか?
unset
とintermediate_image_sizes_advanced
を使用しても機能しますが、アップロードされた画像のみ 後 関数が追加されます。既存の画像用に変更するには、プラグインを使用して画像を再生成するか(本質的にその画像サイズを削除する)、表示されないようにそのオプションを非表示にする必要があります。
3.5.1でテスト済み
// add custom image size
function mytheme_95344() {
add_image_size('x-la',800,800, false);
}
add_action( 'after_setup_theme', 'mytheme_95344' );
// remove it
function remove_image_size_95344($sizes) {
unset($sizes['x-la']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_image_size_95344');
そのため、このx-la
サイズは、unset
関数が追加される前の画像にも表示されます。
これを削除するにはできます。
image_size_names_choose
を使ってディスプレイから隠す
function remove_image_size_95344($possible_sizes) {
unset( $possible_sizes['x-la'] );
return $possible_sizes;
}
add_filter('image_size_names_choose', 'remove_image_size_95344');
フィルタを明確にするために :
intermediate_image_sizes_advanced
- 実際のアップロードに影響しますimage_size_names_choose
- メディアボックスのドロップダウンの表示/非表示を切り替えます
また注意してください :
カスタムイメージにimage_size_names_choose
を使用する場合は非常に一般的なので、テーマまたはプラグインはすでにどこかでadd_image_size
フィルタを使用している可能性があります。その場合は、2番目のimage_size_names_choose
フィルターを使用して、$priority
をfire after 最初のものに設定することができます。
//default filter adding your custom sizes to dropdown
// not having a 3rd parameter will default to priority of 10
add_filter( 'image_size_names_choose', 'my_insert_custom_image_sizes' );
//second use of same filter to remove images note the additional 15 to fire after the above
add_filter( 'image_size_names_choose', 'remove_image_sizes', 15);
フィルタがどのように機能するかを見るには: http://codex.wordpress.org/Function_Reference/add_filter