it-swarm-ko.tech

이미지 첨부 파일의 대체 텍스트를 검색하는 방법?

나는 attachment.php 파일을 사용하여 다른 곳에서 클릭 한 이미지의 큰 버전을 보여줍니다. javascript로 이미지의 캡션으로 이미지 alt 텍스트를 가져오고 싶습니다만, wp_get_attachment_image_src ()가 사용될 때 대체 텍스트는 포함되지 않습니다. 나는 WP가 그것을 검색하는 함수를 가지고 있다고 생각하지 않기 때문에, 나는 내 자신이 필요합니다. 그 기능을 작성하려면 알 필요가 ... 이미지의 대체 텍스트는 어디에 저장되어 있습니까?

첨부 파일 페이지는 alt 텍스트를 포함하지 않는 wp_get_attachment_image_src()을 사용합니다.

<div class = "entry">
<?php 
if ( wp_attachment_is_image( $post->id ) ) : 
    $att_image = wp_get_attachment_image_src( $post->id, "large");?>

    <a href="<?php echo wp_get_attachment_url($post->id); ?>" 
        title="<?php the_title(); ?>" 
        rel="attachment">
    <img class="attached_img" 
        src="<?php echo $att_image[0];?>" 
        width="<?php echo $att_image[1];?>" 
        height="<?php echo $att_image[2];?>"  
        class="attachment-medium" 
        alt="<?php $post->post_excerpt; ?>" />
    </a> 
} <?php endif;?>
</div>

이것은 다음을 보여줍니다 :

<div class = "entry">
    <a href="http://www.example.com/wp-content/uploads/2010/07/photo_namejpg" 
       title="My_Photo_Title" 
       rel="attachment">
       <img class="attached_img" 
            src="http://www.example.com/wp-content/uploads/2010/07/photo_name_and_size.jpg" 
            width="393" 
            height="500"  
            class="attachment-medium" 
            alt="" />
    </a>
</div>  

위 코드에서 $post->post_excerpt가 호출되고 있다는 것을 알고 있지만 이미지의 alt 속성을 가져 오기 위해 대체 할 항목을 모르겠습니다.

32
kevtrout

최근에 최근에 클라이언트 프로젝트에 대한 조사를 했으므로 lo-and-behold 여기에서 사용할 수 있습니다!

텍스트 뒤에는 WordPress 3.0.1에서 이미지 처리 기능의 대부분 (전체?)으로 분류 된 목록이 표시됩니다 (순서와 비슷하게 그룹화했지만 너무 많은 신뢰를 두지 않음) 내 분류에서.)

어쨌든, [당신이 요청한 것 대신에 (무엇을) 생각해야하는지] (알겠습니다. 마지막에도 대답하겠습니다.) 필요한 것은 다음과 같은 속성을 포함하는 HTML 문자열을 반환하는 wp_get_attachment_image() 함수입니다.

  • 'src',
  • 'class',
  • 'alt'
  • 'title'.

워드 프레스 3.0 이미지 처리 기능

다음은 귀하 및 다른 사람의 참고 자료 (정확한 질문에 대한 답변은 아래 점프)에 대한 WordPress의 이미지 처리 기능입니다.

이미지 지원/섬네일

부착

MIME 유형

업로드

파일 시스템

HTML

저수준 이미지 처리 :


약속대로 이미지의 'alt' 텍스트는 wp_postmeta의 meta_key와 함께 '_wp_attachment_image_alt'에 문자열로 저장됩니다.

아마 이미 알고 있듯이 간단한 get_post_meta()으로로드 할 수 있습니다 :

$alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);

53
MikeSchinkel

$attachment가 첨부 파일 자체의 WP_Post 개체 인 wp_prepare_attachment_for_js( $attachment )을 살펴 봅니다.

이것은 약간의 "부엌 싱크대"기능이지만 'alt'를 포함하여 많은 양의 메타 데이터로 멋진 해시를 제공합니다.

$response = array(
        'id'          => $attachment->ID,
        'title'       => $attachment->post_title,
        'filename'    => wp_basename( $attachment->guid ),
        'url'         => $attachment_url,
        'link'        => get_attachment_link( $attachment->ID ),
        'alt'         => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
        'author'      => $attachment->post_author,
        'description' => $attachment->post_content,
        'caption'     => $attachment->post_excerpt,
        'name'        => $attachment->post_name,
        'status'      => $attachment->post_status,
        'uploadedTo'  => $attachment->post_parent,
        'date'        => strtotime( $attachment->post_date_gmt ) * 1000,
        'modified'    => strtotime( $attachment->post_modified_gmt ) * 1000,
        'menuOrder'   => $attachment->menu_order,
        'mime'        => $attachment->post_mime_type,
        'type'        => $type,
        'subtype'     => $subtype,
        'icon'        => wp_mime_type_icon( $attachment->ID ),
        'dateFormatted' => mysql2date( get_option('date_format'), $attachment->post_date ),
        'nonces'      => array(
            'update' => false,
            'delete' => false,
            'edit'   => false
        ),
        'editLink'   => false,
        'meta'       => false,
    );

이것은 (이름에서 알 수 있듯이) wp_send_ajax()을 통해 wp.media보기에 첨부 파일 이미지 메타를 보내기에 특히 유용하지만 다른 용도로 사용할 수 없다는 의미는 아닙니다.

Alt 텍스트를 검색하는 메소드가 변경 될 가능성이있는 경우 _wp_attachment_image_alt 게시물 메타 필드에서 추상화하는 것을 좋아합니다 (가능성은 있지만 생각할 수 있음).

그러나 wp_get_attachment_image_alt() 메소드의 경우가 있다고 생각합니다.

5
Tom Auger

마이크의 대답은 정확하지만 $alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);은 빈 문자열을 반환 할 수 있습니다.

wp_get_attachment_image 는 항상 alt_text를 얻습니다.

Wordpress 팀은 먼저 다음과 같은 트릭을 적용하여 post_except를 확인한 다음 제목을 얻습니다.

if(empty($alt_text)) // If not, Use the Caption
{
    $attachment = get_post($post->ID);
    $alt_text = trim(strip_tags( $attachment->post_excerpt ));
}
if(empty($alt_text)) // Finally, use the title
{ 
    $attachment = get_post($post->ID);
    $alt_text = trim(strip_tags( $attachment->post_title )); 
}
4
GUI Junkie

첨부 파일의 대체 텍스트가 "_wp_attachment_image_alt"라는 맞춤 메타에 저장된다는 것을 알았습니다.

첨부 파일의 ID를 가지고 있으므로이 코드로 대체 텍스트를 가져올 수있었습니다.

<?php echo get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ?>
2
chilljul

WP_Customize_Media_Control ()을 사용하는 경우 get_theme_mod ()는 게시물 ID를 반환하지만 새 WP_Customize_Image_Control ()을 사용하는 경우 get_theme_mod ()가 이미지 URL을 반환합니다.이 방법으로 alt 텍스트를 WP_Customize_Image_Control ()

여기 내가 어떻게 할 수 있었는지. 희망이 사람을 밖으로 데 도움이

// This is getting the image / url
$feature1 = get_theme_mod('feature_image_1');

// This is getting the post id
$feature1_id = attachment_url_to_postid($feature1);

// This is getting the alt text from the image that is set in the media area
$image1_alt = get_post_meta( $feature1_id, '_wp_attachment_image_alt', true );

Markup

<a href="<?php echo $feature1_url; ?>"><img class="img-responsive center-block" src="<?php echo $feature1; ?>" alt="<?php echo $image1_alt; ?>"></a>
0
DevTurtle

마이크의 대답에 누군가를 추가하면 유용 할 것입니다. 게시물 ID를 get_post_thumbnail_id 예제에 전달하여 첨부 파일의 특정 ID를 가져와야 할 수도 있습니다.

  $the_img = wp_get_attachment_image( get_post_thumbnail_id( get_the_ID() ) );
0
Uriahs Victor