web-dev-qa-db-ja.com

メディアライブラリからカスタム画像サイズを隠す

私はメディアアップローダーからいくつかのカスタム画像サイズを隠したいです。

enter image description here

次のコード( ここに掲載 )は、デフォルトの画像サイズに対してonlyで動作します。

function remove_image_sizes($sizes) {
    unset($sizes['image-name']);
    return $sizes;
}
add_filter('image_size_names_choose', 'remove_image_sizes');

カスタム画像サイズの設定を解除するための同様の解決策はありますか?

5

unsetintermediate_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関数が追加される前の画像にも表示されます。

これを削除するにはできます。

  1. すべての画像を再生します(痛み)。
  2. 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

6
Wyck