답변:
질문이에 관한 것이라고 가정 합니다 wp_get_attachment_image_src
.
또한 관련이있을 수 wp_get_attachment_link
있지만 관련이 있지만이 분석에는 포함되지 않습니다.
이 질문에 답하는이 문제에 대해 알고 계십니까 : 미디어 관리자에서 WP 생성 썸네일을 모두 보려면 어떻게해야합니까? . 이 질문에
관한 문제 에 관한 작동 코드를 보려면 그것을 참조하십시오 .
그리고이 WordPress 포럼 주제로 연결 됩니다.
함수 wp_get_attachment_image_src ($ attachment_id, $ 크기, $ 아이콘)를 포함하는 배열을 반환합니다 :
[0] => url
[1] => width
[2] => height
[3] => is intermediate
경우 [3]
거짓의 original
이미지 데이터가 반환됩니다.
모두 wp_get_attachment_image_src
와 wp_get_attachment_link
기능에 의존하는 image_downsize
내부 /wp-includes/media.php
.
그리고이 4 항목 배열이 반환되는 곳입니다.
나는 이것에 대해 확실하지 않지만 PHP의 getimagesize () 함수를 다음과 같이 사용할 수 있다는 것을 알고 있습니다 :
//This must be in one loop
if(has_post_thumbnail()) {
$wanted_width = 300;
$wanted_height = 150;
$id = get_post_thumbnail_id()
$image = wp_get_attachment_image_src($id);
if ($image){
list($width, $height) = getimagesize($image[0]);
if (($wanted_height = $width) && ($wanted_height = $height)){
the_post_thumbnail();
}
else{
//default when no image
echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}
}
else{
//default when no image
echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}
} else {
//default when no image
echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}
나는 그것이 질문에 대한 대답이 아니라는 것을 알고 있지만 AJAX Thumbnail Rebuild 라는 플러그인을 사용할 수 있습니다 -이 플러그인을 사용하면 게시물 축소판을 다시 작성할 수 있습니다. 게시물 미리보기 이미지를 이미 업로드 한 후 add_image_size ()를 사용하는 경우 유용합니다.
요청한 크기가 존재하는 경우에만 축소판을 표시하는 방법은 다음과 같습니다.
if ( has_post_thumbnail() ) {
$imgdata = wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail' ); //change thumbnail to whatever size you are using
$imgwidth = $imgdata[1]; // thumbnail's width
$wanted_width = 300; //change this to your liking
if ( ($imgwidth < $wanted_width ) ) {
the_post_thumbnail();
} else {
//do whatever you want
}
}
이미지 크기가 없으면 자동으로 이미지 크기를 자동으로 만드는 플러그인이 있습니다. http://austinmatzko.com/wordpress-plugins/filosofo-custom-image-sizes/
이 플러그인을 아직 사용할 필요는 없습니다. 그러나 그것은 가치가 있습니다. WP 코어에 비슷한 기능을 추가하는 것에 대한 이야기가 있습니다 .3.2 http://core.trac.wordpress.org/ticket/15311
더 나은 방법 인 것 같습니다. 전역 변수 $ _wp_additional_image_sizes를 사용하면 등록 된 모든 image_size가 저장됩니다. 따라서 이미지 크기 이름이 정의되어 있는지 확인하려면 다음을 수행하십시오.
global $_wp_additional_image_sizes;
if ( array_key_exists( 'desired-image-size' , $_wp_additional_image_sizes) )
{
//your code here
}
else
{
//default code here
}
가장 좋은 방법은 Wordpress의 내장 "get_intermediate_image_sizes"함수를 사용하여 이미지 크기의 전체 목록을 배열로 반환 한 다음 살펴 보는 것입니다.
show_image_by_size( 10470, 'custom_size' );
function show_image_by_size( $_post_id, $_desired_size ) {
$_sizes = get_intermediate_image_sizes();
$_thumbnail_id = get_post_thumbnail_id( $_post_id );
$_image_size = ( in_array( $_desired_size , $_sizes ) ) ? $_desired_size : 'full';
$image = wp_get_attachment_image_src( $_thumbnail_id, $_image_size );
echo '<img src="' . esc_url( $image[0] ) . '" />';
}
어쩌면 이것이 도움이 될 것입니다
<?php
//This must be in a loop
if(has_post_thumbnail()) {
the_post_thumbnail();
} else {
echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}
?>
에서 : http://codex.wordpress.org/Function_Reference/has_post_thumbnail
나는 이미지 크기가 존재하는지 확인하기 위해 이와 같은 것을 사용합니다 :
if (function_exists('has_post_thumbnail') && has_post_thumbnail('medium')) {
//// code to display thumbnail goes here
}
else {
/// otherwise do this
}
그것이 당신을 도울 수 있기를 바랍니다.