获取博客页面的特色图片,而不是帖子图片

时间:2014-03-20 作者:drake035

我有一个名为“Blog”的页面,它使用“默认模板”(index.php)。它有一个特色图像。我想显示此图像,但当我在循环内部或外部使用get\\u post\\u thumbnail\\u id()时,我会获取博客上第一篇文章的缩略图,而不是“博客”页面的缩略图。

以防万一,在“设置”>“阅读”中,帖子页面设置为“博客”

3 个回复
SO网友:MBL

此代码可能正是您所追求的。这将循环页面模板以获取特色图像。如果将其添加到page.php 模板(或index.php, 根据你的主题),它应该抓取页面的特色图片,而不是帖子。

<?php
global $post;
    if ( isset($post) ) {

        //get the ancestors
        $familyTree = get_ancestors($post->ID,\'page\');
        array_unshift( $familyTree, $post->ID ); //add the current page to the beginning of the list

        //loop through the family tree until you find a result or exhaust the array
        $featuredImage = \'\';
        foreach ( $familyTree as $family_postid ) {
            if ( has_post_thumbnail( $family_postid ) ) {
                $featuredImage = get_the_post_thumbnail( $family_postid, \'full\' );
                break;
            }
        }

        // if the page has a featured image then show it
        echo ( $featuredImage ? $featuredImage : "" );

    }    
?>        
你应该把这个添加到你的循环之外

SO网友:HU ist Sebastian

当您在博客页面上时,函数get\\u post\\u thumbnail\\u id()返回第一篇文章的文章缩略图id(正如您已经发现的那样)。

要在博客页面上获得正确的帖子缩略图,您需要执行以下操作:

$thumbnail_id = NULL;
if(is_home()){  //blog page?
   $blog_page_id = (int)get_option(\'page_for_posts\');
   if(has_post_thumbnail($blog_page_id)){
      $thumbnail_id = get_post_thumbnail_id(get_option(\'page_for_posts\'));
   }
} elseif(is_singular()) { //everything \'single\' like post, page, custom post type...
    if(has_post_thumbnail()){
        $thumbnail_id = get_post_thumbnail_id();
    }
} else {  //everything else like 404, category archives, search etc
   //put in a fallback here
}
if(!$thumbnail_id()){
   //put another fallback here
}
$thumbnail = get_attachment_image($thumbnail_id,\'post-thumbnail\');
$thumbnail_src = wp_get_attachment_image_src($thumbnail_id,\'post-thumbnail\')[0];
快乐的编码!

SO网友:Yuvraj Khavad

首先,找到贴子页id并将id传递给wp_get_attachment_url(get_post_thumbnail_id()) 作用

$blog_page_image = wp_get_attachment_url( get_post_thumbnail_id(get_option( \'page_for_posts\' )) );
希望这能解决你的问题。

结束

相关推荐

Link images to post

将图像链接到帖子。大家好我相信这很简单,但我不知道怎么做。我知道如何在帖子中添加图像-单击帖子,添加媒体,选择缩略图。这给了我一个缩略图。我想我要做的是将缩略图链接到帖子,这样我就可以控制缩略图在页面上的显示位置。我有一个这样的模板。 <div class=\"content_div\"> <?php $car_args = array( \'post_type\' =>