이미지 제목 / alt 속성을 얻는 방법?
-
-
`$ attachment-> ID`의 게시물 메타를 가져 오려고했지만 코드에서`$ attachment` 개체에 대한 정보를 볼 수 없습니다.You are trying to get the post meta of `$attachment->ID` but I can not see any info about `$attachment` object in your code.
- 1
- 2015-07-01
- cybmeta
-
@cybmeta 여기 http://wordpress.stackexchange.com/questions/185396/getting-the-image-title-alt-attribute-from-the-gallery-shortcode 에서이 코드 스 니펫을 얻었습니다.@cybmeta i have got this code snippet from here http://wordpress.stackexchange.com/questions/185396/getting-the-image-title-alt-attribute-from-the-gallery-shortcode
- 0
- 2015-07-01
- Nisha_at_Behance
-
1) https://wordpress.org/plugins/imageseo/와 같은 플러그인을 사용할 수도 있습니다. 2) https://wordpress.org/plugins/auto-image-attributes-from-filename-with-bulk-updater/ 3) https://wordpress.org/plugins/auto-image-alt/도움이 되었기를 바랍니다.You can also use plugins such as 1) https://wordpress.org/plugins/imageseo/ 2) https://wordpress.org/plugins/auto-image-attributes-from-filename-with-bulk-updater/ 3) https://wordpress.org/plugins/auto-image-alt/ I hope it helps!
- 0
- 2020-02-24
- James
-
5 대답
- 투표
-
- 2019-03-04
이 게시물은 WordPress 이미지 대체 및 제목을 찾을 때 검색 엔진에서 가장 인기있는 항목 중 하나이기 때문에 여기에 있습니다.질문의 제목과 일치하는 간단한 해결책을 제공하는 답변이 없다는 사실에 다소 놀랐습니다. 결국 제가 생각 해낸 내용이 미래의 독자에게 도움이되기를 바라며 결국 삭제하겠습니다.
// An attachment/image ID is all that's needed to retrieve its alt and title attributes. $image_id = get_post_thumbnail_id(); $image_alt = get_post_meta($image_id, '_wp_attachment_image_alt', TRUE); $image_title = get_the_title($image_id);
보너스로 이미지 src를 검색하는 방법은 다음과 같습니다.위의 속성으로 정적 이미지의 마크 업을 작성하는 데 필요한 전부입니다.
$size = 'my-size' // Defaults to 'thumbnail' if omitted. $image_src = wp_get_attachment_image_src($image_id, $size)[0];
Came here as this post is among the top hits on the search engine when looking for WordPress image alt and title. Being rather surprised that none of the answers seem to provide a simple solution matching the question's title I'll drop what I came up with in the end hoping it helps future readers.
// An attachment/image ID is all that's needed to retrieve its alt and title attributes. $image_id = get_post_thumbnail_id(); $image_alt = get_post_meta($image_id, '_wp_attachment_image_alt', TRUE); $image_title = get_the_title($image_id);
As a bonus here's how to retrieve an image src. With the above attributes that's all we need to build a static image's markup.
$size = 'my-size' // Defaults to 'thumbnail' if omitted. $image_src = wp_get_attachment_image_src($image_id, $size)[0];
-
나는 당신의 대답과 다른 것에서 차이를 얻지 못합니다.질문의 문제는 첨부 파일 ID가 정확하지 않다는 것이었고 그것이 답입니다.또한 답변에서 현재 게시물의 미리보기 이미지에 대한 ID를 얻지 만 원하는 첨부 파일에 대한 ID는 얻지 못합니다.그래서 그것은 OP의 질문에 대답/해결하지 않습니다.I don't get the difference in your answer and the others. The problem in the question was that the attachment ID was not correct, and that is the answer. Additionally, in your answer, you get the ID for the thumbnail of the current post, but not for the desired attachment. so it doesn't answer/solve the question of the OP.
- 0
- 2019-03-20
- cybmeta
-
이미지 ID를 얻는 위치는 귀하에게 달려 있습니다.그러나 어쨌든 반대표에 감사드립니다.내 대답을 당신의 대답에 붙여 넣어 주셔서 특히 감사합니다.Where you get your image ID from is up to you. But thanks for the downvote anyways. Especially nice of you to paste my answer into yours.
- 0
- 2019-03-26
- leymannx
-
당신은 이것에 대한 나의 찬성표를 가지고 있습니다. 그것은 당신이 설명한 것과 똑같습니다.Google에서 최고 인기,좋은 답변입니다.You have my upvote for this, It's exactly like you've described. Top hit on google, good answer.
- 1
- 2020-05-08
- user3135691
-
- 2015-07-01
문제는
get_post_meta()
및get_the_title()
함수에 올바른 첨부 파일 ID를 제공하지 않는다는 것입니다.다음은 이미지의
alt
를 가져 오는 코드입니다.$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
정확하지만
$attachment->ID
가 코드에 정의되어 있지 않으므로 함수는 아무 것도 반환하지 않습니다.코드를 읽으면 이미지의 ID를 메타 필드로 저장 한 다음 다음 코드로 가져 오는 것 같습니다.
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX.'homepage_slide_image', true);
따라서 코드에서
$image->id
가 정확하다고 가정하면 다음을 대체해야합니다.$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
함께 :
$image_alt = get_post_meta( $image->id, '_wp_attachment_image_alt', true);
제목을 얻기 위해
alt
를 얻기위한 것입니다.$image_title = get_the_title( $image->id );
Your problem is that you are not providing the correct attachment's ID to
get_post_meta()
andget_the_title()
functions.This is your code to get the
alt
of the image:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
And it is correct, but
$attachment->ID
is not defined in your code, so, the function does not return anything.Reading your code, it seems that you store the ID of the image as a meta field and then you get it with this code:
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX.'homepage_slide_image', true);
So, assuming that
$image->id
is correct in your code, you should replace this:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
With:
$image_alt = get_post_meta( $image->id, '_wp_attachment_image_alt', true);
That is for getting the
alt
, to get the title:$image_title = get_the_title( $image->id );
-
- 2019-01-29
이미지 첨부 데이터를 얻기 위해 모든 테마에서 빠른 기능을 사용합니다.
//get attachment meta if ( !function_exists('wp_get_attachment') ) { function wp_get_attachment( $attachment_id ) { $attachment = get_post( $attachment_id ); return array( 'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ), 'caption' => $attachment->post_excerpt, 'description' => $attachment->post_content, 'href' => get_permalink( $attachment->ID ), 'src' => $attachment->guid, 'title' => $attachment->post_title ); } }
도움이 되었기를 바랍니다.
I use a quick function in all my themes to get image attachment data:
//get attachment meta if ( !function_exists('wp_get_attachment') ) { function wp_get_attachment( $attachment_id ) { $attachment = get_post( $attachment_id ); return array( 'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ), 'caption' => $attachment->post_excerpt, 'description' => $attachment->post_content, 'href' => get_permalink( $attachment->ID ), 'src' => $attachment->guid, 'title' => $attachment->post_title ); } }
Hope this helps!
-
- 2017-01-02
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX . 'homepage_slide_image', true); if (!empty($image)) { $image = json_decode($image); $image_id = $image->id; $img_meta = wp_prepare_attachment_for_js($image_id); $image_title = $img_meta['title'] == '' ? esc_html_e('Missing title','{domain}') : $img_meta['title']; $image_alt = $img_meta['alt'] == '' ? $image_title : $img_meta['alt']; $image_src = wp_get_attachment_image_src($image_id, 'blog-huge', false); echo '<img class="homepage-slider_image" src="' . $image_src[0] . '" alt="' . $image_alt . '" />'; }
$image->id
는 테스트하지 않았으며 올바른 첨부 파일 ID가 있다고 가정했습니다.나머지는$img_meta
에서 가져옵니다.alt가 누락 된 경우 이미지 제목을 사용하고 있습니다. 제목이 누락 된 경우 "제목 누락"텍스트가 표시되어 채워야합니다.$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX . 'homepage_slide_image', true); if (!empty($image)) { $image = json_decode($image); $image_id = $image->id; $img_meta = wp_prepare_attachment_for_js($image_id); $image_title = $img_meta['title'] == '' ? esc_html_e('Missing title','{domain}') : $img_meta['title']; $image_alt = $img_meta['alt'] == '' ? $image_title : $img_meta['alt']; $image_src = wp_get_attachment_image_src($image_id, 'blog-huge', false); echo '<img class="homepage-slider_image" src="' . $image_src[0] . '" alt="' . $image_alt . '" />'; }
please note that I did not test your
$image->id
, just assumed that you have the right attachment ID. The rest comes from$img_meta
. If alt is missing we are using image title, if title is missing you will see "Missing title" text to nudge you to fill it in. -
- 2017-04-29
좋아요,지금까지 인터넷에 아무도 없다는 답을 찾았습니다. WP_Customize_Media_Control ()을 사용하는 경우 테마 또는 플러그인이 WP_Customize_Image_Control ()을 사용하는 경우에만 작동합니다.get_theme_mod ()는 URL이 아닌 ID를 반환합니다.
내 솔루션의 경우 최신 버전 WP_Customize_Image_Control ()을 사용했습니다.
포럼의 많은 게시물에 더 이상 작동하지 않는get_attachment_id ()가 있습니다. attachment_url_to_postid ()를 사용했습니다.
다음은 내가 할 수 있었던 방법입니다. 이것이 누군가를 도울 수 있기를 바랍니다
// 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 );
마크 업
<a href="<?php echo $feature1_url; ?>"><img class="img-responsive center-block" src="<?php echo $feature1; ?>" alt="<?php echo $image1_alt; ?>"></a>
Ok I found the answer that no one has on the net I been looking for days now. Keep in mine this only works if your theme or plugin is using the WP_Customize_Image_Control() if you are using WP_Customize_Media_Control() the get_theme_mod() will return the ID and not the url.
For my solution I was using the newer version WP_Customize_Image_Control()
A lot of posts on the forums have the get_attachment_id() which does not work anymore. I used attachment_url_to_postid()
Here is how I was able to do it. Hope this helps someone out there
// 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>
흰색 테마에는 홈 슬라이더 게시물에 대해 구성된 alt 속성이 없습니다. 미디어 라이브러리 인터페이스를 통해 이미지에 대한 대체 텍스트를 추가했습니다. 대체 텍스트/속성을 표시하기 위해 다음 코드를 추가했습니다. 그러나 표시되지 않습니다.
코드는 다음과 같습니다.