特定の投稿タイプのadd_image_size()


18
set_post_thumbnail_size( 80, 80, true ); // true for all post types

ブログで2種類の投稿をプレイしているとします:Post、Video、Product。投稿には80x80の画像サイズが必要ですが、動画には100x100、製品には50x100が必要な場合があります。私の知る限り、投稿画像のサムネイルを100x100および50x100のサイズで作成する必要があります。そして、私の製品では、80x80と100x100のサムネイルを作成することを余儀なくされています。

投稿タイプに基づいた画像サイズを作成して、使用する予定のない画像を大量に作成したり、他の場所で使用できるリソースを無駄にしたりしないようにする方法はありますか?


私はまったく同じニーズに直面しました。
MikeSchinkel

その画像サイズが必要な部分のテーマでこの関数image_resizeを使用するとどうなりますか?また、コンテキストに応じて複数の用途のための速記関数を書くこともできます。

私には明らかな見落としのように思えますが、これはまだ解決されていませんか?
ネイサンホーンビー

回答:


12

投稿タイプに基づいて画像サイズを設定する方法はありません。画像をアップロードするときに画像がまだ投稿に添付されておらず、中間画像サイズが作成されているためです。すべての投稿に)。

しかし、私は最近、一緒にあなたが望むことをする2つのプラグイン作成しました仮想中間イメージは、中間イメージサイズの作成をインターセプトします。ディスク上には作成されませんが、メタデータ配列には存在します。これにより、WordPressはそれらが存在すると判断し、通常の画像のように使用できます。コンパニオンプラグインであるOn-Demand Resizerは、要求時に不足している画像サイズを作成します。イメージが最初に要求されたときに作成され、それ以降のすべての要求は新しく作成されたイメージが提供されます。

これらのプラグインは、WordPressプラグインディレクトリに配置する前に書き換える必要がありますが、安全なはずです。または、少なくともTODO安全でない場合はコメントしてください。


いいね!
MikeSchinkel

2

この他のスレッドにコードを投稿し、画像をアップロードするときに投稿タイプでトランジェントを設定してから、そのトランジェントの値を確認し、アップロードが完了したときにポストサムネイルサイズを調整します。完璧でも防弾でもありませんが、少なくともコンセプトを実証する必要があります。


0

私は次の解決策を思いつきました。追加の投稿を作成せずに、カスタム投稿タイプの画像のみを作成します。唯一の問題は、高度なカスタムフィールドのようなプラグインを使用する場合、ギャラリーフィールドをレンダリングしようとすると、デフォルトのワードプレス画像サイズ「サムネイル」、「中」、「大」のみが表示され、作成されたカスタム投稿画像サイズにアクセスできないことです。

if ( function_exists ('add_image_size') ) {

function remove_default_img($sizes) {
    unset( $sizes['medium']);
    unset( $sizes['large']); 
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img');

$type = get_post_type($_REQUEST['post_id']);
// Post_Name Image Sizes ======================================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}

}

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