专题图片不会显示在帖子页面上

时间:2017-01-06 作者:armadadrive

我希望这还没有被涵盖-我无法找到它使用我的关键字。我设计了一个网站,每个页面都有一个新的标题图像。我在报纸的每一页上都这么说header.php 文件如下:

<img src="<?php echo the_post_thumbnail_url(\'full\'); ?>" alt="Header Image">
我已经在函数中启用了特色图像。php(add_theme_support(\'post-thumbnails\');) 而且它在网站上的每个其他页面上都能正常工作。

在“设置>阅读”下,我切换了Front Page Displays: 选项来自Your latest postsA static page 并将主页和帖子页面设置为主页和博客(我在仪表板中创建的页面)。

当我加载博客页面时,它显示一个空的图像容器。检查元素表明没有src集。如果我在“设置”>“阅读”下将/博客/页面设置为“帖子”页面,则会显示图像。我尝试过使用/博客/索引。php作为其模板,并使用home。php作为其模板。没有区别。

如果博客页面允许我在WordPress仪表板中设置特色图像,为什么不显示?

编辑:我看到了this question, 但答案并没有告诉我为什么或者发生了什么。

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

当你有Posts Page: 设置为“Blog”,然后直接访问页面(通过slug),是否显示标题图像?

将静态“Posts”页面设置为“Blog”页面会覆盖模板。Wordpress将使用模板层次结构来确定用于显示博客帖子的文件。

问题是WP\\U查询包含要显示的帖子列表,因为设置告诉它该页面用于显示帖子,而不是单独的页面。

这意味着模板在编辑页面时不一定知道页面设置。

我们需要看看conditional tags documentation 要找到要使用的正确模式,请执行以下操作:

if ( is_front_page() && is_home() ) {
  // Default homepage
} elseif ( is_front_page() ) {
  // static homepage
} elseif ( is_home() ) {
  // blog page
} else {
  //everything else
}
使用该模式(或类似模式),您可以将代码更新为:

// Use Conditional Tags to find out if you are on the header page
<?php if ( is_home() ) : ?>
<img src="<?php echo get_the_post_thumbnail_url(*BLOG PAGE ID HERE*,\'full\'); ?>" alt="header" />
<?php else  : ?>
<img src="<?php echo get_the_post_thumbnail_url(\'full\'); ?>" alt="header" />
<?php endif; ?>
使用类似的方法,WP将根据页面设置获取缩略图URL。

注意我的用法get_the_post_thumbnail_url() 包括要从中提取标题图像的页面ID。您还可以使用the_post_thumbnail_url() 不正确。这个echo 您使用的是多余的,因为the_post_thumbnail_url() 用于打印缩略图URL。请参见source here.

为清晰起见进行了编辑

相关推荐