Reputation: 493
While I know how to create a counting inside a foreach,
$i = -1;
foreach ($menu_items as $item => $value) :
...
$i--;
endforeach;
I want to create the same counting effect but my own code isn't inside a foreach. A sample of my code is like this:
<ul>
<li>...</li>
<li class="menu-item[<?php echo esc_attr( $count ); ?>]">...</li>
<li class="menu-item[<?php echo esc_attr( $count ); ?>]">
<ul>
<li class="menu-item[<?php echo esc_attr( $count ); ?>]"></li>
<li class="menu-item[<?php echo esc_attr( $count ); ?>]"></li>
</ul>
</li>
<li class="menu-item[<?php echo esc_attr( $count ); ?>]">...</li>
</ul>
Outcome should be like this.
<ul>
<li>...</li>
<li class="menu-item[-1]">...</li>
<li class="menu-item[-2]">...</li>
<li class="menu-item[-3]">
<ul>
<li class="menu-item[-4]"></li>
<li class="menu-item[-5]"></li>
</ul>
</li>
<li class="menu-item[-6]">...</li>
</ul>
Any help is much appreciated.
Upvotes: 0
Views: 75
Reputation: 94662
You just need to decrement the counter as you go along with the --
Start by setting count
to zero or whatever you want the counter to start at, as you have just before your foreach
loop.
<ul>
<li>...</li>
<li class="menu-item[<?php echo esc_attr( $count-- ); ?>]">...</li>
<li class="menu-item[<?php echo esc_attr( $count-- ); ?>]">
<ul>
<li class="menu-item[<?php echo esc_attr( $count-- ); ?>]"></li>
<li class="menu-item[<?php echo esc_attr( $count-- ); ?>]"></li>
</ul>
</li>
<li class="menu-item[<?php echo esc_attr( $count-- ); ?>]">...</li>
</ul>
This will decrement the $count
field AFTER displaying its current value.
If you were to use
<li class="menu-item[<?php echo esc_attr( --$count ); ?>]">...</li>
it would decrement the counter first and then display its value.
Upvotes: 1
Reputation: 2353
try this..
<ul>
<li>...</li>
<li class="menu-item[<?php $count = -1; echo esc_attr( $count ); ?>]">...</li>
<li class="menu-item[<?php echo esc_attr( --$count ); ?>]">
<ul>
<li class="menu-item[<?php echo esc_attr( --$count ); ?>]"></li>
<li class="menu-item[<?php echo esc_attr( --$count ); ?>]"></li>
</ul>
</li>
<li class="menu-item[<?php echo esc_attr( --$count ); ?>]">...</li>
</ul>
Upvotes: 0