我正在使用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比较新,所以我可能缺少一些简单的东西,任何帮助将不胜感激
亚历。
答案 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 );
?>