我在wordpress中创建了一个自定义主题,在显示get_the_post_thumbnail();时遇到了问题,我尝试了几种不同的方法,但都没有成功。即使有缩略图,它也会回显“没有缩略图”
<?php
/*
* Template Name: Blog Page
*/
get_header(); ?>
<div class="top-image">
<div class="headlines-2">
<h1 class="big">blog</h1>
</div>
</div>
<div id="primary" class="col-md-12">
<main id="main" class="site-main" role="main">
<div class="news">
<?php
$args = array(
'cat' => 9,
'posts_per_page' => '70'
);
// The Query
$the_query = new WP_Query( $args );
// The Loop
if (has_post_thumbnail($_post->ID, 'thumbnail') ){
$photo = get_the_post_thumbnail($_post->ID, 'thumbnail');
echo '<div class="section1-2singlephoto">' . $photo . '</div>';
}
else {
echo 'no Thumbnail';
}
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<div class="boxed col-md-4">';
echo '<h2 class="titles">' . get_the_title() . '</h2>';
echo '<span class="rule"></span>';
echo '<div class="author-info">'. get_the_date() .'<br>' .
get_the_author_link() .'</div>';
echo get_template_part( 'template-parts/content', get_post_format()
);
echo "</div>";
}
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();?>
</div>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_footer();发布于 2016-12-31 02:56:14
您在自定义post循环之外检查缩略图,所以我假设您希望缩略图应用于页面本身,而不是单个帖子。
您遇到的第一个问题是没有定义$_post,因此has_post_thumbnail()的计算结果总是为false。
使用$post是很常见的,但您首先会希望包含global $post;。
其次,正如另一位用户已经指出的那样,has_post_thumbnail不接受多个参数(尽管这不太可能造成问题)。
示例1-显示页面的缩略图:
改变这个-
if (has_post_thumbnail($_post->ID, 'thumbnail') ){
$photo = get_the_post_thumbnail($_post->ID, 'thumbnail');
echo '<div class="section1-2singlephoto">' . $photo . '</div>';
}
else {
echo 'no Thumbnail';
}对这个-
global $post;
if ( has_post_thumbnail( $post ) ) {
$photo = get_the_post_thumbnail( $post->ID, 'thumbnail' );
echo '<div class="section1-2singlephoto">' . $photo . '</div>';
} else {
echo 'no Thumbnail';
}示例2-显示单个帖子缩略图:
将下面的放在你的post循环中-
if ( has_post_thumbnail() ) { // note the removal of all args.
// here we switch from using an ID to null
$photo = get_the_post_thumbnail( null, 'thumbnail' );
echo '<div class="section1-2singlephoto">' . $photo . '</div>';
} else {
echo 'no Thumbnail';
}发布于 2016-12-30 01:41:17
试试看。
$post_thumbnail_id = get_post_thumbnail_id($_post->ID);$post_thumbnail_url = wp_get_attachment_url( $post_thumbnail_id );
“/>
发布于 2016-12-30 02:29:42
has_post_thumbnail只接受一个参数,即post对象(或post id)。
删除,‘缩略图’,这样它就是:
if (has_post_thumbnail($_post->ID) ){https://developer.wordpress.org/reference/functions/has_post_thumbnail/
https://stackoverflow.com/questions/41384557
复制相似问题