Як у WordPress показати заголовок зображення за допомогою функції the_post_thumbnail
Починаючи з версії 2.9, у ВордПрес (WordPress) ввели дуже корисну функцію звану «Мініатюра запису» (Featured Image), яка дозволяє прив’язати до кожного запису або сторінки зображення. Щоб використовувати цю функцію, спочатку потрібно активувати. Для цього у файл functions.php вашої WordPress теми потрібно додати наступний запис:
add_theme_support( 'post-thumbnails' );
Після цього в адмінці вордпресу з’явиться наступний блок:

І можна призначати для записів та сторінок зображення:

Тепер цю картинку можна використовувати у темі вордпрес за допомогою функції the_post_thumbnail():
add_theme_support( 'post-thumbnails' );
Але що якщо ми хочемо показати не тільки картинку, але і її заголовок, який можна задати при завантаженні або ж у «Бібліотеці файлів» (Media Library) в адмінці Вордпрес (WordPress)? Виявляється the_post_thumbnail() цього робити не вміє, а іншої функції для цього вордпресс (WordPress) не існує (на момент створення даного запису). На щастя ця проблема вирішується досить просто і лише кілька рядків у файлі functions.php допоможуть це зробити.
function the_post_thumbnail_caption() {
global $post;
$thumbnail_id = get_post_thumbnail_id($post->ID);
$thumbnail_image = get_posts(array('p' => $thumbnail_id, 'post_type' => 'attachment'));
if ($thumbnail_image && isset($thumbnail_image[0])) {
echo '<span>'.$thumbnail_image[0]->post_excerpt.'</span>';
}
}
Ми створили нову функцію the_post_thumbnail_caption() яка і буде виводити заголовок зображення на тему вордпрес.
Як функцію the_post_thumbnail, і the_post_thumbnail_caption слід використовувати у циклі WordPress (the loop). Наприклад, якось так:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<article class="single">
<div class="date"><?php the_date('M j Y', '', ''); ?></div>
<h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title();?></a></h1>
<?php if ( has_post_thumbnail() ) {
echo '<div class="thumb">';
the_post_thumbnail();
the_post_thumbnail_caption();
echo '</div>';
} ?>
<div class="author">By <?php the_author_posts_link(); ?></div>
<?php the_content( 'more...' ); ?>
</article>
<?php endwhile; ?>
<?php endif; ?>
І отримаємо, зрештою, картинку та під нею її заголовок.
