列出子页面标题和内容,并以不同方式设置第一次迭代的样式

时间:2014-03-06 作者:Max

所以现在,每个迭代看起来都一样,我已经有一段时间没有处理php了,你能帮我吗?

   <?php
$pages = get_pages(\'child_of=\'.$post->ID.\'&sort_column=post_date&sort_order=desc\');
$count = 0;
foreach($pages as $page)
{
    $content = $page->post_content;
    if(!$content)
        continue;
    if($count >= 2)
        break;
    $count++;
    $content = apply_filters(\'the_content\', $content);
?>
    <div id="<?php echo $page->post_title ?>">
      <h2><?php echo $page->post_title ?></h2>
    <?php echo $content ?>
      </div>
<?php
}
  ?>
我到处看看,发现我可以用这样的东西

<?php foreach ($pages as $page) : start_wp(); ?>
    <?php if ($i == 1) : ?>
 //first iteration
   <?php else : ?>
//the rest

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

您应该使用$wp_query 检索页面和帖子,因为这是最有效的方法,您可以使用$current_post 返回循环索引的参数。

It works like this

<?php 

    $args = array (
        \'posts_per_page\' => -1, //Showing all the pages
        \'post_type\' =>  \'page\', //Retrieving pages not posts.
        \'post_parent\'   => $post->ID
        );

    $the_query = new WP_query($args);
    while($the_query->have_posts()):
        $the_query->the_post();
            if ($the_query->current_post == 0){ // For first child page only
                            echo \'FIRST POST IS: \';
                the_title();
            }
            else{   //For rest of the pages
                the_title();
            }
    endwhile;
    wp_reset_postdata();

?>
查看if结构。您可以使用post索引current_post 就像那样。

您可以按自己喜欢的方式自定义查询。

参考号:WP_Query Codex

SO网友:thedigitalmonk

我认为这是一个PHP问题,而不是wordpress问题。如果我已经清楚地理解了,那么您希望循环的第一个结果的样式与其他结果不同。我会这样做的。

<?php
$pages = get_pages(\'child_of=\'.$post->ID.\'&sort_column=post_date&sort_order=desc\');

$count = 0;

foreach($pages as $page) {

$content = $page->post_content;
$content = apply_filters(\'the_content\', $content);

if($count=0) { ?>

     //markup for first iteration

  <?php  } else { ?>

      //markup for remaining iterations

   </php }

    $count++;
}

  ?>

结束

相关推荐

Multiple loops in Genesis

所以我想在我的主页上创建两个循环。一个可以显示页面自身内容的页面,然后在其正下方有一个网格循环,用于从“新闻”类别中获取两篇最新帖子。我真的找不到一种方法来做这件事,所以我四处黑客攻击,直到我让它工作起来,但我不确定这是正确的做法,有人能告诉我我可以/应该对这段代码做些什么改进吗?以下是我的截图:http://s18.postimg.org/knrq6sert/2013_11_13_22_55_58.png主题:MetroTemplate:主页。php//* Add support for Genesis