Я использую файл attachment.php, чтобы показать большие версии изображений, на которые щелкнули в других местах. Я хотел бы вытащить изображение alt-текст как подпись под изображением с помощью javascript, но alt-текст не включается, когда используется wp_get_attachment_image_src (). Я не думаю, что в WP есть функция для ее извлечения, поэтому мне нужна моя собственная. Чтобы написать эту функцию, мне нужно знать ... Где хранится альтернативный текст для изображения?
Моя страница вложения использует 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 изображения.
источник
wp_get_attachment_imgage()
раньше и полностью забыл об этом. Ты прав насчет того, что, как ты думал, мне действительно нужно. Спасибо за информацию. Вы также правы насчет того, где хранится альт-мета ... Я посмотрел именно в этом месте, но это ускользнуло от меня, хотя я, должно быть, смотрел прямо на него. Вот что я получаю за то, что вхожу в это в конце дня. Еще раз спасибо!wp_get_attachment_image()
возвращаете массив изображений src и атрибуты. Кажется, он возвращает только HTML, содержащий изображение и его атрибуты. По-прежнему выполняет свою работу, просто не знал, известно ли вам о чем-то, чего нет в функции ref: codex.wordpress.org/Function_Reference/wp_get_attachment_imageРассмотреть вопрос о
wp_prepare_attachment_for_js( $attachment )
, где$attachment
находится объект WP_Post самого вложения.Это немного похоже на функцию «кухонная раковина», но она предоставляет очень хороший хэш с кучей метаданных, включая «alt»:
Это особенно полезно (как следует из названия) для отправки мета-изображения изображения вложения в wp.media View через
wp_send_ajax()
, но это не значит, что вы не можете использовать его для других целей.Мне нравится абстрагироваться от
_wp_attachment_image_alt
мета-поля post, если метод получения альтернативного текста когда-либо изменяется (маловероятно, но возможно).Я чувствую, что есть
wp_get_attachment_image_alt()
способ для метода, однако.источник
Ответ Майка , конечно, правильный, но
$alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
может вернуть пустую строку.Однако wp_get_attachment_image всегда получает alt_text.
Команда Wordpress применяет следующий трюк, сначала проверяя post_except, затем получая заголовок.
источник
Я обнаружил, что текст Alt для вложений был сохранен в пользовательской мета-версии "_wp_attachment_image_alt"
Таким образом, имея идентификатор вложения, я смог получить альтернативный текст с помощью этого кода:
источник
Если вы используете WP_Customize_Media_Control (), ваш get_theme_mod () вернет идентификатор записи, но если вы используете новый WP_Customize_Image_Control (), get_theme_mod () вернет URL-адрес изображения, так я смог получить альтернативный текст с помощью WP_Customize_Image_Control ()
Вот как я смог это сделать. Надеюсь, это поможет кому-то там
наценка
источник
Чтобы добавить к ответу Майка, кто-то может найти это полезным. Возможно, вам потребуется получить конкретный идентификатор вложения, так что вы можете сделать это, передав идентификатор сообщения в
get_post_thumbnail_id
пример:источник