您需要在“设置”>“阅读”中获取已设置为帖子页面的页面ID,以便访问其属性。为此,请检查page\\u for\\u posts选项,该选项返回ID:
$page_for_posts = get_option( \'page_for_posts\' );
if ($page_for_posts && has_post_thumbnail($page_for_posts) {
$thumb_id = get_post_thumbnail_id( $page_for_posts);
$url = wp_get_attachment_url( $thumb_id );
//... the rest of your featured image display stuff here
}
此代码应放在索引之外(之前)。显示所有博客帖子的php循环;他们的特色图片,它不能取代它。
你可以用这个$page_for_posts
ID显示该页面的其他元素,包括标题,例如:echo get_the_title($page_for_posts);
编辑:
尝试使用此索引。php;我假设您的实际posts循环位于“循环”模板部分内。这只会将<img>
在贴子页面顶部标记该页面的特色图像。
<?php get_header(); ?>
<main role="main" aria-label="Content" class="page-bg page-margin">
<!-- section -->
<section>
<?php
// Get the ID of the page set to Display Posts in Settings > Reading
$page_for_posts = get_option( \'page_for_posts\' );
// If that page ID exists, and that page has a Featured Image....
if ($page_for_posts && has_post_thumbnail($page_for_posts)) {
// Get the ID of that page\'s Featured Image
$thumb_id = get_post_thumbnail_id( $page_for_posts);
// Display that image
echo wp_get_attachment_image($thumb_id);
}
// Display the page title if set; else use \'News\'
if ($page_for_posts) {
echo \'<h1 class="archive-h1">\' . get_the_title($page_for_posts) . \'</h1>\';
} else {
echo \'<h1 class="archive-h1">News</h1>\';
}
?>
<?php get_template_part( \'loop\' ); ?>
<?php get_template_part( \'pagination\' ); ?>
</section>
<!-- /section -->
</main>
<?php get_footer(); ?>
我使用此功能输出该特征图像:
wp_get_attachment_image() 该函数将输出
<img>
使用scrset属性标记响应图像。如果您希望将页面的特色图像显示为背景图像,您仍然可以使用
wp_get_attachment_url()
只需获取URL并使用
<div>
要显示它,请执行以下操作:
<?php $url = wp_get_attachment_url($thumb_id); ?>
<div class="page-thumb" style="background-image:url(\'<?php echo $url ?>\');"></div>