Hola, he estado todo el fin de semana en este problema que ya resulta antipático. Resulta que el esistema consulta a la BD, trae la info con GET y luego los traigo con un foreach. Funciona perfecto si no fuese por el detalle que a veces refleja dos y más datos.
En sí el código es éste (hay una mezcla de variables propias y de Wordpress pero no le presten atención):
Código php:
Ver original<?php
foreach((get_the_category()) as $cat) {
if ($cat->category_parent == 31 AND $ent != 0) echo '
<tr>
<th scope="row">Ente ejecutor:</th>
<td>' . $cat->cat_name . ' <a href="' . get_category_link($cat->cat_ID) . '">(Obras desarrolladas por este organismo)</a><br /></td>
</tr>
';
if ($cat->category_parent == 6 AND $reg != 0) echo '
<tr>
<th scope="row">Región:</th>
<td>' . $cat->cat_name . ' <a href="' . get_category_link($cat->cat_ID) . '">(Obras ubicadas en esta región)</a><br /></td>
</tr>
';
if ($cat->category_parent == 34 AND $niv != 0) echo '
<tr>
<th scope="row">Nivel de avance:</th>
<td>' . $cat->cat_name . ' <a href="' . get_category_link($cat->cat_ID) . '">(Obras con este nivel de avance)</a><br /></td>
</tr>
';
} break;
?>
Puse al final ese
break porque de lo contrario se viene todo el array de categorías ¿hay alguna manera de fijar con php la posición inicial de la lista y escoger el puesto del array que tenga un solo dato?. Como mencioné funciona bien, pero en unos 4 o 5 casos me devuelve varios. Si pudiera decidir desde dónde va a tomarlos resolvería el problema.