PHP动态网格显示新闻不会重置ID

时间:2013-07-06 13:03:39

标签: php wordpress

我正在使用wordpress构建我的新博客,并希望创建一个包含我最新帖子的网格,然后用户可以点击节点并重定向到特定帖子。

我想要做的是每行创建x个节点,然后为这些节点分配一个节点类和节点$ x以应用特定样式(我希望某些节点比其他节点更宽)

我遇到的问题是我的$id一旦超过设定值就不会重置

调用此条件时调用该函数 -

    <div class="row span12 news-tiles-inner">
        <?php $node_id = 1; ?>
        <?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();  ?>
            <?php 
                create_node( $node_id );
                $node_id+= 1;
             ?>
        <?php endwhile; endif; ?>
    </div>

create_node()函数看起来像这样

function create_node( $id ) {   
    if($id > 3) {
        $id = 1;
    }
    $content = get_the_title();
    echo "<div class='node node$id'>
                    <a href='#'>$content</a>

          </div>";

    return $id;

}

在其当前状态下,我的节点id的输出为node1,node2,node3,但是其余节点的值被实例化为node1,node1,node1,用于查询中剩余的节点,我对PHP比较新,所以我可能缺少一些简单的东西,任何帮助将不胜感激

亚历。

1 个答案:

答案 0 :(得分:1)

这是因为您正在从create_node函数重置本地计数器变量,而不是从循环中重置计数器(您只是递增它)。因此,在它达到4之后,您的函数将继续将本地计数器重置为1.

只需在循环中移动重置逻辑:

<?php 

    if($node_id++ > 3) {   // if it's 4, reset it to 1
        $node_id = 1;
    }

   create_node( $node_id );
?>