Есть ли способ отобразить заголовок изображения, когда это возможно, при отображении the_post_thumbnail() изображения в WordPress на сообщениях в основном цикле.
the_post_thumbnail()
Спасибо!Цените всю помощь.
Начиная с WordPress 4.6, функция the_post_thumbnail_caption() была добавлена в ядро (/wp-includes/post-thumbnail-template.php).
the_post_thumbnail_caption()
Использование приведенного здесь кода приведет к ошибке:
Fatal error: Cannot redeclare the_post_thumbnail_caption()
Вот более простой и короткий код:
<?php the_post_thumbnail(); echo get_post(get_post_thumbnail_id())->post_excerpt; ?>
if(!function_exists('get_post_thumbnail_caption')) { function get_post_thumbnail_caption($post_id = null) { $post_id = ( null === $post_id ) ? get_the_ID() : $post_id; $thumbnail_id = get_post_thumbnail_id($post_id); if ($thumbnail = get_post($thumbnail_id)) return $thumbnail->post_excerpt; return ''; } } if(!function_exists('the_post_thumbnail_caption')) { function the_post_thumbnail_caption($post_id = null) { echo get_post_thumbnail_caption($post_id); } } if(has_post_thumbnail()) { the_post_thumbnail(); the_post_thumbnail_caption(); $caption = get_post_thumbnail_caption(123); if('' == $caption) echo '<div class="caption">'.$caption.'</div>'; }
Я понял это:
/************************************************************\ * Fetch The Post Thumbnail Caption \************************************************************/ 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 $thumbnail_image[0]->post_excerpt; } }