I have this PHP Code for add a specific class to <a>
element in a WordPress menú, before to clean all other elements from WordPress:
<?php
$menuParameters = array(
'menu' => '40',
'container' => false,
'echo' => false,
'items_wrap' => '%3$s',
'depth' => 0,
);
$menu = strip_tags(wp_nav_menu( $menuParameters ), '<a>' );
$find = array('<a');
$replace = array('<a class="pro-link pro1"');
echo str_replace( $find, $replace, $menu );
?>
This print some like this:
<a class="pro-link pro1" href="link1">Link1</a>
<a class="pro-link pro1" href="link2">Link2</a>
<a class="pro-link pro1" href="link3">Link3</a>
The problem is that I need to put 3 distinct classes (pro1, pro2 and pro3), and print like this:
<a class="pro-link pro1" href="link1">Link1</a>
<a class="pro-link pro2" href="link2">Link2</a>
<a class="pro-link pro3" href="link3">Link3</a>
How I can do it? I need to iterate?
Thanks for your help! :)
UPDATE:
It's working but the first item print only "pro", and the next "pro1", "pro2". I tried to change value of $replacecounter but it doesn't work. I need just solve that and will work perfect.
<?php
$menuParameters = array(
'menu' => '40',
'container' => false,
'echo' => false,
'items_wrap' => '%3$s',
'depth' => 0,
);
$replacecounter = 1;
$menu = strip_tags(wp_nav_menu( $menuParameters ), '<a>' );
echo preg_replace_callback('/<a/', 'replaceCounter', $menu);
function replaceCounter() {
global $replacecounter;
$str="pro-link pro". $replacecounter++;
return "<a class='$str'";
}
?>