2012-08-10 145 views
2

因此,我设置了我的wordpress主题以允许用户上传精选图像,并构建我的索引页以显示选定页面的精选图像,但也想显示图像的说明。如何从我的wordpress页面获取精选图片描述?

事情是,我没有使用循环,我拉动页面ID使用WordPress的设置API作为选项。

所以显示功能的图像就像下面这样:

<?php $bucket_options = get_option('frontpage_display_options'); ?> 
<?php $page_one = $bucket_options['frontpage_bucket_one']; ?> 
<?php $page_one = get_post($page_one); ?> 
<?php if (has_post_thumbnail($page_one->ID)) : ?> 
     <?php echo get_the_post_thumbnail($page_one->ID, 'bucket'); ?> 
<?php endif; ?> 

我继续读,这将工作:

echo get_post(get_the_post_thumbnail_id($page_one->ID))->post_content; 

或本:

echo get_post(get_the_post_thumbnail($page_one->ID))->post_content; 

但他们都没有显示任何东西

+0

不是一个答案,但而不是打开和关闭整个PHP模式,只需打开一次并关闭一次即可。 – PeeHaa 2012-08-10 19:12:51

+0

哦,我知道,我总是看到这样的wordpress代码,并认为这是最好的做法。个人它困扰我 – rugbert 2012-08-10 19:54:54

+3

如果你看到wordpress中的任何东西,你必须做相反的,如果你想防止不好的做法。真实的故事。 – PeeHaa 2012-08-10 19:55:41

回答

6

这种能力正在等待一个新版本:http://core.trac.wordpress.org/ticket/12235

但一个解决方案,围绕浮在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();

+0

太好了,谢谢!我修改了一下,接受了一个帖子ID,因为我的东西不是在一个循环中,但它完美的工作! – rugbert 2012-08-10 20:51:46

+1

这会输出标题,而不是描述。对于其他任何想要如何输出描述的人来说,除了将“post_excerpt”更改为“post_content”之外,其他人都是如此。 – 2014-04-17 21:53:51

+0

在撰写本文时,这是在WP内核中实现的,所以您不必定义该函数,只需通过'the_post_thumbnail_caption()'描述使用它。 – kontur 2017-10-24 11:09:07

相关问题