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

add_theme_support( 'post-thumbnails' );

Після цього в адмінці вордпресу з’явиться наступний блок:

Featured-image---Display-image-caption-1

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

Featured-image---Display-image-caption-2

Тепер цю картинку можна використовувати у темі вордпрес за допомогою функції 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; ?>

І отримаємо, зрештою, картинку та під нею її заголовок.

Featured-image---Display-image-caption-3




Залишити відповідь