2013-06-21 4 views
4

Google 애널리틱스 클릭 이벤트가있는 프로모션/광고 슬라이더가있는 WP 사이트에서 작업하고 있습니다. 훌륭한 작품입니다. 이제 올바른 이미지를 올바른 해상도로 제공하고 싶습니다.ID로 크기의 이미지를 찍습니다

나는 이미지 제공에 picturefill을 사용하고 있습니다. 하드 코드 된 동안 잘 작동하므로 작동하는 것입니다. WP로 업로드 한 이미지로 이미지 소스를 얻으려고 할 때 그렇지 않습니다. 나는 그것이 (부족한) PHP 기술 덕분이라고 알고있다.

무엇 picturfill 요구 :

<span data-picture data-alt=""> 
    <span data-src="filename_default.jpg"></span> 
    <span data-src="filename_small.jpg" data-media="(min-width: 400px)"></span> 
    <span data-src="filename_medium.jpg" data-media="(min-width: 768px)"></span> 
    <span data-src="filename_big.jpg" data-media="(min-width: 1200px)"></span> 

    <!-- Fallback content for non-JS browsers. --> 
    <noscript> 
     <img src="external/imgs/small.jpg" alt=""> 
    </noscript> 
</span> 

내가 URL 또는 ID 또는에 저장된 이미지 중 하나가 :

<?php 
    $attachment_id = get_field('advimg'); 
    $large = "adv-pos-a-large"; 
    $default = "adv-pos-a-default"; 
    $small = "adv-pos-a-small"; 

?> 

: 은 $ attachment_id

나는 이렇게 생각을 get_field ('advimg');ACF입니다.

<span data-picture data-alt=""> 
    <span data-src="<?php wp_get_attachment_image_src($attachment_id, $default); ?>"></span> 
    <span data-src="<?php wp_get_attachment_image_src($attachment_id, $small); ?>" data-media="(min-width: 400px)"></span> 
    <span data-src="<?php wp_get_attachment_image_src($attachment_id, $default); ?>" data-media="(min-width: 768px)"></span> 
    <span data-src="<?php wp_get_attachment_image_src($attachment_id, $large); ?>" data-media="(min-width: 1200px)"></span> 

    <!-- Fallback content for non-JS browsers. --> 
    <noscript> 
     <img src="external/imgs/small.jpg" alt=""> 
    </noscript> 
</span> 

하지만 작동하지 않습니다. 주변에 연주 Iv'e :

wp_get_attachment_image_src wp_get_attachment_image_url 이 메신저는 표시되지 ... 어려운 일이 아니라고 가 나는 금요일을 가지고해야

, 그것은 노력하고있는 것이 아닙니다 때문에 나에게 말한다

을 wp_get_attachment_image_link 오늘.

희망 너희들은/

/폴에게 사전에.에

편집/최종 코드를

감사 피치

<?php 
    $attachment_id = get_field('advanced_custom_field_name_here'); 
    $small = wp_get_attachment_image_src($attachment_id, 'adv-pos-a-small'); 
    $default = wp_get_attachment_image_src($attachment_id, 'adv-pos-a-default'); 
    $large = wp_get_attachment_image_src($attachment_id, 'adv-pos-a-large'); 
?> 

<span data-picture data-alt="alt desc here"> 
    <span data-src="<?php echo $default[0]; ?>"></span> 
    <span data-src="<?php echo $small[0]; ?>" data-media="(min-width: 400px)"></span> 
    <span data-src="<?php echo $default[0]; ?>" data-media="(min-width: 768px)"></span> 
    <span data-src="<?php echo $large[0]; ?>" data-media="(min-width: 1200px)"></span> 

    <!-- Fallback content for non-JS browsers. Same img src as the initial, unqualified source element. --> 
    <noscript> 
     <img src="<?php echo $default[0]; ?>" alt="alt desc here"> 
    </noscript> 
</span> 

답변

11

wp_get_attachment_image_src이 혼동이라는 FIX 수 있습니다. (더 좋은 이름은 wp_get_attachment_image_atts입니다.) 이미지 첨부 파일의 이미지 속성 "url", "width"및 "height"가있는 배열을 실제로 반환합니다. 단지 이미지 SRC를 들어, 반환 된 배열의 첫 번째 요소를 사용 :

$img_atts = wp_get_attachment_image_src($attachment_id, $default); 
$img_src = $img_atts[0]; 

는 또한, $attachment_id = get_field('advimg');는 당신에게 당신이 기대하는 ID를 제공 있도록 ACF 이미지 필드 반환 형식이 첨부 ID로 설정되어 있는지 확인합니다.

+0

감사합니다. 자세한 답변은 +1. 나는 이것을 월요일에 확인하고 알려 줄 것이다! – Kortschot

+0

아 그래! 굉장해! 완성 된 코드를 편집/추가하십시오! – Kortschot

관련 문제