get_posts
获取的数组WP_Post
对象(请参见return values of get_post
获取对象属性的完整列表)。
在上面的代码片段中,您使用foreach
环在它内部,您当前正在尝试使用一个不存在的方法(post_thumbnail()
) 在这些对象中。
相反,请使用get_the_post_thumbnail
函数,并将当前post对象的ID属性作为第一个参数提供给它:
<?php
echo get_the_post_thumbnail( $cpost->ID, \'thumbnail\', array( \'class\' => \'alignleft\' ) );
?>
这回答了你问题的核心
顺便说一句,我要指出,您不需要
<?php
每行上的打开和关闭标记。下面是对您的代码片段的完整修订:
<?php
if ( is_page() ) {
global $post;
$cposts = get_posts( array(
\'posts_per_page\' => -1,
\'category_name\' => $post->post_name
));
if ( $cposts ) {
foreach ( $cposts as $cpost ) {
echo \'<div class="mb20">\' .
\'<h2>\' . $cpost->post_title . \'</h2>\' .
\'<p>\' . $cpost->post_content . \'</p>\' .
get_the_post_thumbnail(
$cpost->ID,
\'thumbnail\',
array( \'class\' => \'alignleft\' )
) .
\'</div>\';
}
}
}
?>