0

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

我想要做的是每行创建 x 个节点,然后为这些节点分配一个节点类和 node$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 比较陌生,所以我可能会遗漏一些东西简单,任何帮助将不胜感激

亚历克斯。

4

1 回答 1

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 );
?>
于 2013-07-06T13:09:49.450 回答