¿Por qué usar over over en publicaciones de wordpress individuales?

2

¿Por qué se usa while() en lugar de decir if() aquí?

        <?php while ( have_posts() ) : the_post(); ?>

        <?php get_template_part( 'content', 'single' ); ?>

        <?php _s_post_nav(); ?>

        <?php
            // If comments are open or we have at least one comment, load up the comment template
            if ( comments_open() || '0' != get_comments_number() ) :
                comments_template();
            endif;
        ?>

    <?php endwhile; // end of the loop. ?>

Así que lo he visto desde siempre y lo he usado también porque es lo que Wordpress usa de forma predeterminada. Sin embargo, hoy me siento un poco más curioso de lo habitual: ¿por qué se usa mientras que en lugar de if? ¿Espero recibir más de una publicación única en la vista de publicación única?

enlace enlace

    
pregunta justnorris 27.06.2014 - 09:11

2 respuestas

4

Como el Códice de WordPress para have_posts señala:

  

Como efecto secundario, have_posts comienza, avanza o restablece The Loop. Al final del bucle, have_posts devuelve 0 después de llamar a rewind_posts.

Mirando la fuente tal como está hoy: junto con la llamada rewind_posts() también activa la acción loop_end (en la que pueden confiar los complementos), así como también establece una marca para que in_the_loop() devuelva falso posteriormente.

Por lo tanto, llamar a have_posts() en cada iteración hace más que solo devolver un Booleano. No me apoyaría demasiado en los detalles de la fuente porque es un objeto en movimiento. Es suficiente para comprender que hay otras tareas de mantenimiento que se realizan cuando llama a have_posts() hasta que devuelve falso y es menos probable que presente problemas de interoperabilidad sutiles si lo usa de esa manera incluso cuando solo hay una sola publicación involucrada.

    
respondido por el Phil Lewis 27.06.2014 - 10:21
0

Debes usarlo en una publicación única o en una publicación detallada porque no obtienes el campo meta de publicación. Por ejemplo, tiene un tipo de publicación personalizada como "Producto" en el lado del administrador y luego agrega solo campos personalizados al producto (Extra archivado como precio, número, etc.). En resumen, usa while loop para obtener un campo adicional, como obtener el metadatos posteriores, de lo contrario no puede obtener un campo adicional Es posible cuando estás usando while loop en single.php

    
respondido por el test 27.06.2014 - 09:47

Lea otras preguntas en las etiquetas