특정 게시물 유형에 대한 add_image_size ()


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

내 블로그에 게시물, 비디오 및 제품이라는 두 가지 게시물 유형이 있다고 가정합니다. 내 게시물에는 80x80 이미지 크기를 원하지만 비디오에는 100x100, 내 제품에는 50x100을 원할 수 있습니다. 내 지식으로는 100x100 및 50x100 크기의 Post 이미지에 대한 축소판을 만들어야합니다. 그리고 내 제품의 경우 이전에는 사용하지 않더라도 80x80 및 100x100 인 축소판을 만들어야합니다.

포스트 유형을 기반으로 이미지 크기를 생성하여 사용하지 않을 많은 이미지를 만들고 다른 곳에서 사용할 수있는 리소스를 낭비하지 않는 방법이 있습니까?


나는 정확히 같은 요구에 부딪쳤다.
MikeSchinkel

해당 이미지 크기가 필요한 부분의 테마 에서이 함수 image_resize 를 사용하면 어떻게됩니까 ? 컨텍스트에 따라 여러 용도로 사용하는 단축 함수를 작성할 수도 있습니다.

나에게 명백한 감독 인 것 같지만 여전히 해결되지 않았습니까?
Nathan Hornby 2012

답변:


12

이미지를 업로드 할 때 이미지가 아직 게시물에 첨부되지 않고 중간 이미지 크기가 만들어 지므로 ( "New Media"를 통해 이미지를 추가 할 때) 모든 게시물에).

그러나 최근 에 함께 원하는 것을 수행 할 수있는 두 개의 플러그인만들었습니다 . 가상 중간 이미지 는 중간 이미지 크기 생성을 가로 챌 것입니다. 디스크에서 생성되지는 않지만 메타 데이터 배열에는 여전히 존재합니다. 이렇게하면 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.