PHP While Loop设置计数ID


PHP While Loop setting count ID

我有点拘泥于我正在开发的一段PHP,我需要将链接的href设置为下面div的相同ID,但它没有将它们设置为相同。

$x=1; 
     while ( $loop->have_posts() ) : $loop->the_post(); 
     if($color!='')
        {
            $out.='<'.$heading.' class="heading_accordion newHeadingColor">'.get_the_title().'</'.$heading.'>';
        }
     else
     {
                $out.='<dd class="accordion-navigation"><a href="#panel'.$x++.'">'.get_the_title().'</a>';
     }
                $out.= '<div id="panel'.$x++.'" class="content">'.get_the_content().'</div></dd>';
                endwhile; // end of the loop.

正在进行

<a href="#panel1">link</a>
<div id="panel2">content</div>
<a href="#panel3">link</a>
<div id="panel4">content</div>
<a href="#panel5">link</a>
<div id="panel6">content</div>

需要像这样的东西

<a href="#panel1">link</a>
<div id="panel1">content</div>
<a href="#panel2">link</a>
<div id="panel2">content</div>
<a href="#panel3">link</a>
<div id="panel3">content</div>

这是因为$x增加了两次:一次是在输出href时,一次是输出id时。

你可以删除第一个输出的增量:

$out.='<dd class="accordion-navigation"><a href="#panel'.$x.'">'.get_the_title().'</a>';

并将其保存在第二个:

$out.= '<div id="panel'.$x++.'" class="content">'.get_the_content().'</div></dd>';

尝试这个

while ( $loop->have_posts() ) : $loop->the_post(); 
$x++;
     if($color!='')
        {
            $out.='<'.$heading.' class="heading_accordion newHeadingColor">'.get_the_title().'</'.$heading.'>';
        }
     else
     {
                $out.='<dd class="accordion-navigation"><a href="#panel'.$x.'">'.get_the_title().'</a>';
     }
                $out.= '<div id="panel'.$x.'" class="content">'.get_the_content().'</div></dd>';
            endwhile; // end of the loop.

$x++

等于

$x=$x+1

所以你在1次迭代中增加2次。尝试从这两段中的一段中删除增量。

<?php
$x=1; 
while ( $loop->have_posts() ) : $loop->the_post();
if($color!='') {
    $out.='<'.$heading.' class="heading_accordion newHeadingColor">'.get_the_title().'</'.$heading.'>';
} else {
    $out.='<dd class="accordion-navigation"><a href="#panel'.$x.'">'.get_the_title().'</a>';
}
$out.= '<div id="panel'.$x.'" class="content">'.get_the_content().'</div></dd>';
$x++;
endwhile; // end of the loop.
?>

您正在提前执行$x++。

只需使用$x输出id,并在if-else语句

之后执行$x++