我有点困在我正在处理的一块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>
答案 0 :(得分:3)
这是因为您正在递增$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>';
答案 1 :(得分:1)
试试这个
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.
答案 2 :(得分:1)
$ x ++
等于
$ x = $ x + 1
所以你在1次迭代中增加2次。尝试从这两个段之一中删除增量。
答案 3 :(得分:0)
<?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.
?>
答案 4 :(得分:0)
你早期做的是$ x ++。
只需使用$ x输出id,并在if-else语句后执行$ x ++