おすすめの画像のキャプションを表示しないようにしています。現在のところ、divをビルドするように表示されます(ただし、空なので入力しません)。私がやりたいことは、理想的には、誰かがメディアパネルのキャプション(post_excerpt
)ボックスにテキストを入力した場合にのみdivを表示することです。
これは私が開発中のコードです:
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>';
}
}
これは、キャプションが空の場合に自分でキャプションを隠してみたものです。
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'));
$thumbnail_caption = $thumbnail_image[0]->post_excerpt;
$thumbnail_set = isset($thumbnail_image[0]);
if (! empty($thumbnail_set)) {
if ($thumbnail_image && isset($thumbnail_image[0])) {
echo '<div class="img-caption"><h5>'.$thumbnail_caption.'</h5></div>';
} else return;
} else return;
}
これは私のページテンプレートのコードです:
<section class="entry-content">
<?php if ( has_post_thumbnail() ) : ?>
<figure class="featured-img alignright">
<?php the_post_thumbnail('med_size'); ?>
<?php the_post_thumbnail_caption(); ?>
</figure><!-- .entry-page-image -->
<?php endif; ?>
<?php the_content(); ?>
</section>
注目の画像のキャプションを削除したときそれは消えますが、divはemtpyのh5
要素と同様にまだ作成されています。
これが2つの状態のスクリーンキャプチャーです。
キャプションを空白のままにすると リンクされます
アドバイスと助けてくれてありがとう!
if ($thumbnail_image && isset($thumbnail_image[0])) {
では - $thumbnail_image[0]
は$thumbnail_caption
であってはいけません。
WordPress 4.6では、関数the_post_thumbnail_caption()
がcoreに追加されました(/wp-includes/post-thumbnail-template.php)。
ここに掲載されているコードを使用するとエラーが発生します。
Fatal error: Cannot redeclare the_post_thumbnail_caption()