不知道你是怎么做到的single.php
, 但我相当肯定不是这样的。主要问题是the_post_thumbnail()
和get_the_post_thumbnail()
正在生成img
为您标记输出-因此将其放入src
的属性img
代码中的tag-like无法工作。
另外:后者可以return
, 前者是echo
输出。您使用的是后者,但不要重复它,因此实际上什么都没有发生。还有其他一些区别,例如。the_post_thumbnail()
只能用于当前帖子,因为它没有$post_id
参数get_the_post_thumbnail()
可以用于任何帖子缩略图,只要您输入$post_id
. 更多关于codex页面。
因此,在您的案例中的用法如下所示:
// either:
the_post_thumbnail( \'custom-medium\' );
// or:
echo get_the_post_thumbnail( get_the_ID(), \'custom-medium\' );
或者如果你真的想填补
src
的属性
img
标记您可以执行的操作:
<?php
$img_url = wp_get_attachment_image_src(
get_post_thumbnail_id( get_the_ID() ),
\'custom-medium\'
);
?>
<img src="<?php echo $img_url[0]; ?>">
利用
wp_get_attachment_image_src()
,
get_post_thumbnail_id()
和
get_the_ID()
- 后者已在上述示例性代码中使用。
<小时>
Update:
只是想澄清一下,上述方法确实经过了多次测试和使用。我想肯定还有另一个问题,但实际上从现有的信息看不出来。
作为概念证明front-page.php
具有custom query:
<?php
get_header();
$paged = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
$thumb_args = array(
\'posts_per_page\' => 1,
\'cat\' => 87,
\'paged\' => $paged
);
$thumb_query = new WP_Query( $thumb_args );
$temp_query = $wp_query;
$wp_query = NULL;
$wp_query = $thumb_query;
if (
$thumb_query->have_posts()
) {
while (
$thumb_query->have_posts()
) {
$thumb_query->the_post();
the_title();
echo \'<br>\';
the_post_thumbnail();
echo \'<br>\';
echo get_the_post_thumbnail();
echo \'<br>\';
$img_url = wp_get_attachment_image_src(
get_post_thumbnail_id()
);
echo \'<img src="\'. $img_url[0]. \'">\';
}
} else {
// no posts
}
echo \'<br>\';
previous_posts_link( \'← \' );
next_posts_link( \' →\', $thumb_query->max_num_pages );
wp_reset_postdata();
$wp_query = NULL;
$wp_query = $temp_query;
get_footer();
我还不得不把这个扔进
functions.php
要使分页正常工作,请执行以下操作:
add_action(
\'pre_get_posts\',
\'wpse162764_frontpage_custom_query_additional_pagination_fix\'
);
function wpse162764_frontpage_custom_query_additional_pagination_fix( $query ) {
if (
is_admin()
) {
return;
}
if (
is_front_page()
) {
$query->set(
\'posts_per_page\',
1
);
}
}
如果这对您不起作用,请确保设置了正确的参数,否则肯定会有另一个问题。
此外,几乎不需要自定义查询,所以让我们使用主查询。
A.front-page.php
具有main query:
<?php
get_header();
if (
have_posts()
) {
while (
have_posts()
) {
the_post();
the_title();
echo \'<br>\';
the_post_thumbnail();
echo \'<br>\';
echo get_the_post_thumbnail();
echo \'<br>\';
$img_url = wp_get_attachment_image_src(
get_post_thumbnail_id()
);
echo \'<img src="\'. $img_url[0]. \'">\';
}
} else {
// no posts
}
echo \'<br>\';
previous_posts_link( \'← \' );
next_posts_link( \' →\' );
get_footer();
此外,您需要在
functions.php
要使用主查询,请执行以下操作:
add_action(
\'pre_get_posts\',
\'wpse162764_pre_get_posts_for_frontpage_main_query\'
);
function wpse162764_pre_get_posts_for_frontpage_main_query( $query ) {
if (
is_admin()
|| ! $query->is_main_query()
) {
return;
}
if (
is_front_page()
) {
$query->set(
\'posts_per_page\',
1
);
$query->set(
\'cat\',
87
);
}
}
注:
顺便说一句,我也使用了多个查询/循环来运行它,确实有效,如果做得好,也不会是问题所在。