以POST格式显示当前页面的子页面及其缩略图(精选图像)?

时间:2011-02-17 作者:janoChen

我正在使用从Wordpress codex:

<?php // Displaying Child pages of the current page in post format
            $mypages = get_pages(\'child_of=\'.$post->ID.\'&sort_column=post_date&sort_order=desc\');
            $count = 0;
            foreach($mypages as $page)
            {
                $content = $page->post_content;
                if(!$content)
                    continue;
                if($count >= 20)
                    break;
                $count++;
                $content = apply_filters(\'the_content\', $content);
            ?>
                <div class="content-block">
                    <h2><a href="<?php echo get_page_link($page->ID) ?>"><?php echo $page->post_title ?></a></h2>
                    <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\', \'twentyten\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark"><?php the_post_thumbnail(); ?></a>
                    <?php echo $content ?>
                </div>
            <?php
            }
        ?>
我尝试了以下代码来获取页面的特征图像:

<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\', \'twentyten\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark"><?php the_post_thumbnail(); ?></a>
还有这个:

$thumbnail = apply_filters(\'the_post_thumbnail\', $thumbnail);
但它没有得到应有的图像。

有什么建议吗?

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

您不在常规循环中,或者至少不在设置全局post变量的循环中,所以the_post_thumbnail 没有用于获取缩略图的ID。。

使用get_the_post_thumbnai( $page->ID ) 相反,它应该工作得很好。

SO网友:Bainternet

您需要添加setup_postdata($page); 在foreach循环中

<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\', \'twentyten\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark"><?php the_post_thumbnail(); ?></a>
应该有用。

结束

相关推荐

Custom theme - pages in menu

我很高兴有机会成为这个社区的一员。最近我决定开始学习wordpress和主题构建,所以这是我在这里的第一篇帖子。我在网上阅读了一些关于如何构建自定义主题的教程。我的问题是,如何构建自定义菜单?例如,我在psd上有模板,我将其切片,然后我想将其集成到wordpress上。我支持先构建页面。那么,如何使用自定义css/xhtml构建菜单,使每个链接都指向我创建的页面?也许描述不清楚,但我想你明白我的意思。提前感谢。