Hamijos! Necesito ayuda de PHP. Tiene que ver con expresiones regulares, que no son mi punto fuerte.
Estoy montanto un menú personalizado para una plantilla de Wordpress y el problema que tengo es que al cargar un custom menú en WP te lo devuelve en estructura <ul><li>, y dada la maquetación específica de mi menú necesito que sea una estructura de divs bastante peculiar.
Para no hacer la guarrada de extraer lo que necesito del menú con javascript y pegarlo dentro de mi estructura, estoy intentando "limpiarlo" de la variable que recibo con la estructura de menús.
Por ahora ando tal que así:
<div id="cargador_menu">
<?php
$foot_nav = wp_nav_menu(array('theme_location' => 'primary',
'container' => false,
'echo' => false));
$foot_nav2 = preg_replace(array('#^<ul[^>]*>#', '#</ul>$#'), '', $foot_nav);
$foot_nav2 = preg_replace(array('#<li[^>]*>#', '#</li>$#'), array('<div>','</div>'), $foot_nav2);
echo $foot_nav2;
?>
</div>
para hacer desaparecer el UL que engloba todo guay, no hay problema, pero mi conflicto viene al intentar remplazar las etiquetas <li> por <div>, no me lo está haciendo correctamente, me sale un resultado final así:
<div><a href="http://www.jordidepaco.com">Submenú</a>
<div><a href="http://www.google.com">Google miau miau</a>
<div><a href="http://www.gatitos.com">Gatitos bonitos</a>
</div></div></div>
osea, la etiqueta inicial de los <li> la sustituye correctamente, pero luego me los cierra todos al FINAL en lugar de donde estaba el </li> original...
¿Dónde puedo haberme colado?