一部のカスタム投稿タイプのデフォルト画像サイズの生成を無効にする方法


12

「サムネイル」、「中」、「大」サイズの不要なカスタム投稿タイプを使用しました。このサイズを無効にして、設定できる関数またはプラグインを作成する必要があります。各画像サイズは、カスタム投稿タイプごとに必要です。

私の最初のステップは、wp-includes / media.phpからget_intermediate_image_sizes関数をフックすることです。functions.phpにこのコードを追加しましたが、動作しません:(

add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
    global $_wp_additional_image_sizes;
    //$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
    $image_sizes = array();
    if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
        $image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}   

UPD: media.phpでこの行を編集しています。変更が生成されない後のデフォルトのタイプ。

$image_sizes = array('thumbnail', 'medium', 'large');

しかし、どのように私のフックを機能させるのですか?


1
これに対する答えもしたいです
urok93

2
それはあなたがそのフィルターを使用する方法ではありません。デフォルトサイズをクリアするには、非常に低い優先度で追加し、空の配列を返すだけです。ただし、すべての投稿タイプに影響するため、問題は解決しません。現在のWPバージョンであなたが望むことをする方法はないと思います。この関数$attachment_id内のフィルターに引数を追加するようにWP開発者に要求してください。あなたはフックの内側のポストタイプを確認することができますこの方法
onetrickpony

私のステップは実験であり、完全な解決策ではありません。フィルターを正しく使用するにはどうすればよいですか?PSは、リンクいただきありがとうございます...
ボフダンHdal

今それを可能にするWPへの変更はありますか?
-Drivingralle

変更なし。それでも同じ問題。
ボーダンHdal

回答:


7

現時点で唯一の解決策は、すべての中間画像サイズを無効にすることだと思います:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 );

そして、投稿タイプに応じて、「wp_generate_attachment_metadata」にフックして手動で生成します。ここで、添付ファイルID(およびその親投稿)にアクセスできます。

function do_your_stuff( $data, $attachment_id ) {
  // generate intermediate images

  return $data;
}

add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );

最後のadd_filterに渡す10&2パラメーターは何ですか?
ルーク

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.