Превьюхи к каждому посту в WordPress

Для превьюх (thumbnails) в WordPress последних версий используется удобный механизм Featured Image - просто указываешь картинку из библиотеки и она прикрепляется к посту. Эта картинку в шаблоне можно выводить так:

>> внутри цикла

if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
the_content();

Но the_post_thumbnail() и родственный ему get_the_post_thumbnail() генерируют сразу готовый html-блок с картинкой, в котором вставлен класс, alt и title. При этом alt и title берутся из медиа-библиотеки, где, как считают авторы WordPress, у каждой картинки они просто обязаны быть прописаны.

Но что, если в медиа-библиотеке WordPress таких alt и title нет? Или они содержат абракадабру (при массовой загрузке картинок в alt и title вставляется имя файла)? Или нужно сделать подходящий alt и title для этого, конкретного поста?

Для таких случаях я вчера нашел такой рецептик:


$thumb_id = get_post_thumbnail_id($post->ID);
$url = wp_get_attachment_url($thumb_id );

$html = '[img src='.$url.' class="Class1" title="Text_1" alt="Text_2" /]'

// квадратные скобки для img на самом деле обозначают угловые

Где первая строка берет ID картинки, вторая строка берет через ID прямую ссылку на картинку-превьюху к посту, а в третьей ты сам прописываешь и класс, и титл, и альт, и любые другие атрибуты, которые нужны.

Я, кстати, сделал это не для темы, а для плагина PostList, который выводит анонсы других постов в любом указанном посте с помощью простого кода, который вставляется прямо в встроенном текстовом редакторе WordPress.


Leave a Reply




#hello#