fbpixel

SOLUCIONADO: Ayuda con un código que me está volviendo loco!

Hola, tengo este código que hace un output de diversos campos hechos con ACF Flexible Fields. Tengo una parte que no lo gro que me funcione como quiero, el código es el siguiente:

<?php if ( have_rows( 'process_page_sections' ) ): ?>
<?php while ( have_rows( 'process_page_sections' ) ) : the_row(); ?>
<section class="container-fluid inqure <?php the_sub_field( 'background_color' ); ?>" id="<?php the_sub_field( 'section_id' ); ?>">
  <?php if ( get_row_layout() == 'process_main_section_area' ) : ?>
  <!-- start section -->
  <div class="container">
    <?php $section_icon = get_sub_field( 'section_icon' ); ?>
    <?php if ( $section_icon ) { ?>
    <?php echo wp_get_attachment_image( $section_icon, 'thumbnail' ); ?>
    <?php } ?>
    <h3>
      <?php the_sub_field( 'section_title' ); ?>
    </h3>
    <?php the_sub_field( 'section_description' ); ?>
    <!-- START TABLE -->
    <?php elseif ( get_row_layout() == 'process_table' ) : ?>
    <div class="row">
      <div class="table-responsive">
        <table class="table table-striped">
          <?php if ( have_rows( 'table_header' ) ) : ?>
          <thead>
            <tr class="row">
              <?php while ( have_rows( 'table_header' ) ) : the_row(); ?>
              <th scope="col" class="col-4">
                <?php the_sub_field( 'table_header_label' ); ?>
              </th>
              <?php endwhile; ?>
            </tr>
          </thead>
          <?php else : ?>
          <?php // no rows found ?>
          <?php endif; ?>
          <?php if ( have_rows( 'table_row' ) ) : ?>
          <?php while ( have_rows( 'table_row' ) ) : the_row(); ?>
          <?php if ( have_rows( 'row_items' ) ) : ?>
          <tr class="row">
            <?php while ( have_rows( 'row_items' ) ) : the_row(); ?>
            <td class="col-4">
              <?php the_sub_field( 'cell_value' ); ?>
            </td>
            <?php endwhile; ?>
            <?php else : ?>
            <?php // no rows found ?>
            <?php endif; ?>
          </tr>
          <?php endwhile; ?>
          <?php else : ?>
          <?php // no rows found ?>
          <?php endif; ?>
        </table>
      </div>
    </div>
    <p class="clarify">
      <?php the_sub_field( 'additional_table_content' ); ?>
    </p>
    <?php endif; ?>
    <?php endwhile; ?>
    <?php else: ?>
    <?php // no layouts found ?>
  </div>
</section>
<?php endif; ?>

Todos los outputs funcionan perfecto, pero me están quedando las etiquetas section anidadas, cuando obviamente deberían ser un bloque encima de otro. Obviamente estoy colocando mal la apertura y/o cierre de la etiqueta. Quizás es que estoy muy cansado pero no logro hacer que funcione como quiero. O sea, el problema no es de php o ACF, está en el html, lo más bobo de todo, pero sin embargo no lo estoy encontrando. Cualquier ayuda desde ya se agradece

Que tal

Tienes varios “endwhile” puestos incorrectamente.
Abre un IDE que te permita ver las tabulaciones, por ejemplo Sublime Text y empieza a tabular cada condición y cada bucle.

Saludos

Pudiste solucionar este problema o ya estás en el psiquiátrico? :wink:

obviamente ya lo intenté viendo las tabulaciones, pero no lo encuentro. Igual el código es el que te tira ACF, así que los endwhile me consta que están bien, y de hecho el output es perfecto, lo que me está haciendo rabiar es el cierre de la etiqueta html y después de tantos sitios de Wp me da bronca no encontrarlo . De todas maneras todavía no reintenté hoy, ya me fijo a ver si más fresco lo logro encontrar :smiley:

jaja, no lo volví a retomar porque estuve en otras cosas, ya me pongo y les cuento. Igual ya compré una camisa de fuerza con colores lindos que me adelgaza y me queda re bien :smiley:

1 me gusta

Ya encontré el problema, es que estoy usando una lógica que por ahorrar tiempo hace que las tablas sean elementos a agregar independientemente de la sección. Por tanto, si agrego un campo flexible con tablas también me agrega etiquetas section antes y después de las etiquetas table (o sea que cada tabla es una sección de por sí) o si cambio la posición de los tags para evitar este problema las secciones me quedan “anidadas”. Tendría que haber creado un campo flexible que englobe a todo en vez de dejar los campos flexibles en forma independiente de la sección, lo cual me da más bronca porque es como hicimos el resto del sitio. Y bueh….