检索特定帖子的特色图片并在不同的页面上显示

时间:2013-04-03 作者:dragonfeet2012

我只是想从指定的帖子/页面中抓取特色图像缩略图,并将该图像显示在任何其他页面的某处。

例如,如果是一篇文章,请使用第9篇文章中的缩略图。如果是这个页面,使用82的缩略图,依此类推。

它似乎没有这么简单:

$thumbnail_id = get_the_post_thumbnail(82);
因为我已经试过了,但它并不能在所有情况下都起作用。

有没有一种通用的方法可以做到这一点?

3 个回复
最合适的回答,由SO网友:dragonfeet2012 整理而成

看起来这可能就是为什么它没有按我需要的方式工作的原因。

before->if(有\\u post\\u缩略图())

似乎这只与您所在的特定帖子/页面相关,而与您获取图像的页面/页面无关-如果您没有输入帖子ID。但后来我用我试图检索的帖子ID尝试了它,它起了作用。

之后->如果(有\\u post\\u缩略图(9))

SO网友:fuxia

每个post对象都有一个公共成员$post_parent. 这是父帖子的帖子ID。所以这应该是可行的:

$thumbnail = \'\';

if ( ( \'event_posts\' == get_post_type()
        || is_page( \'events\' )
        || is_page( \'restaurants\' )
        || is_page( \'recreation\' )
        || is_page( \'entertainment\' )
        )
    && ! empty ( $GLOBALS[\'post\']->post_parent )
    )
{
    $thumbnail = get_the_post_thumbnail( $GLOBALS[\'post\']->post_parent );
}

echo $thumbnail;

SO网友:seredfe

方法1)

<?php
$target_post_id = \'999\';
$feat_image = wp_get_attachment_url(get_post_thumbnail_id($target_post_id));
echo \'$feat_image\';
?>
方法2)

<?php 
$target_post_id = \'999\';
if (has_post_thumbnail($target_post_id) ): ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id($target_post_id), \'single-post-thumbnail\' ); ?>
<?php echo $image[0]; ?>
<?php endif; ?>

结束