wordpress检查博客页面(主页)是否有特色图片

时间:2014-10-17 07:51:36

标签: php wordpress themes

我正在构建一个wordpress主题,并在每个页面的顶部显示该页面的特色图片。我正在快速查询以使用has_featured_image()检查它是否具有精选图像但是,当涉及到我的博客页面(home.php)时 - 此查询会查找第一个POST的精选图像,不适用于PAGE的特色图片。

我如何检查我的博客PAGE是否有特色图片,因为上述代码无效。

3 个答案:

答案 0 :(得分:0)

想出这个,下面的代码将会发现你的博客PAGE是否有特色图片,而不是拍摄第一张POST的精选图片。

$page_for_posts = get_option( 'page_for_posts' ); 
if (has_post_thumbnail( $page_for_posts )) {
    // do something
};

答案 1 :(得分:0)

山姆,你有完整的代码吗?我试图在div上显示页面特色图像作为背景图像,并使其在除博客页面之外的所有页面上工作,其中它显示最新博客文章的特色图像。

感谢。

答案 2 :(得分:0)

我遇到了完全相同的问题。我有一个网站使用特色图像作为英雄图形。我希望博客页面能够效仿,但当我将静态页面转换为自定义博客文章索引时,我的代码就不再有用了。我终于找到了一个解决方案,我在循环外的header.php中写入了条件语句。

第一个语句获取页面的精选图像:

<?php if ( has_post_thumbnail( $post_id )) { ?> 
<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'thumbnail') ); ?>
<div class="grid_navigation" style="background-image: url('<?php echo $url ?>');">

第二个检查这是一个家庭或博客页面,并抓取静态页面转向博客索引的URL。我仍然在想这个,但是一旦页面设置为“博客”,它就会被抛出“常规”页面。哈,不确定这是否合理。所以请求发布ID不再那么简单......

<?php } elseif (is_home() && get_option('page_for_posts') ) { ?> // Gets featured image of page set to home or blog
<?php $url = wp_get_attachment_url(get_post_thumbnail_id(get_option('page_for_posts')),'full'); ?>
<div class="grid_navigation" style="background-image: url('<?php echo $url ?>');">

然后是关闭它的最后一句话:

<?php } else { ?>
<div class="grid_navigation">
<?php } ?> 

以下是完整的条件语句:

<?php if ( has_post_thumbnail( $post_id )) { ?> 
<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'thumbnail') ); ?>
 <div class="grid_navigation" style="background-image: url('<?php echo $url ?>');">

<?php } elseif (is_home() && get_option('page_for_posts') ) { ?> // Gets featured image of page set to home or blog
<?php $url = wp_get_attachment_url(get_post_thumbnail_id(get_option('page_for_posts')),'full'); ?>
<div class="grid_navigation" style="background-image: url('<?php echo $url ?>');">

<?php } else { ?>
<div class="grid_navigation">
<?php } ?>