在For循环中显示当前页面的自定义字段

时间:2011-12-31 作者:Federico Pian

我正在实现一个滚动水平模板,这是指向div的代码,div是模板的页面。

 <?php for($i=1;$i<=2;$i++) { ?>
<div class="container" id="page-<?php echo $i ?>">
    <div class="left278">
        <?php 
            $specialPosts = new WP_Query();
            $specialPosts->query(\'pagename=page-\'.$i.\'\');

            $mykey_values = get_post_custom_values(\'custom_select\');
                foreach ( $mykey_values as $key => $value ) {
                    if ($value=\'one\') { 
                       include \'templates/slideshow-template.php\'; }
                    else if ($value==\'two\') { 
                       include \'templates/full-page.php\'; 
                }  ?>
    </div>
</div>
<?php } ?>
如您所见,我获得了页面名称,并且有一个自定义字段,您可以在其中选择模板页面。

问题是它总是获取第一页的自定义字段值。因此,如果我在第一页选择选项一,在第二页选择选项二,它将始终显示第一个模板。

我怎样才能解决这个问题?

1 个回复
SO网友:keatch

您必须将$post->ID传递给函数,或通过调用$specialPosts->为您填充的\\u post()来设置当前帖子

看见get_post_custom_values codex中的文档或本page 关于如何使用它。

尝试

<?php 
            $specialPosts = new WP_Query();
            $specialPosts->query(\'pagename=page-\'.$i.\'\');

            while($specialPosts->have_posts()): $specialPosts->the_post();

               $mykey_values = get_post_custom_values(\'custom_select\');
                   foreach ( $mykey_values as $key => $value ) {

            ...
            endwhile;

结束

相关推荐