Bucle bien reralizado?

Estoy aprendiendo a realizar un theme de WordPress y estoy en la parte donde se muestran los últimos posts.

Entre el 3º y el 4º posts quiero mostrar un anuncio por lo que tengo que trabajar con el loop que muestra los posts de WordPress.

He realizado este código y me funciona perfectamente, pero empiezo a dudar si el bucle esta bien realizado y el while puede acabar dando problemas…

En resumen, podéis echarle un ojo si controláis más de PHP que yo para confirmarme que el bucle no está sin cerrar o el while es infinito? Repito que funciona perfectamente, es por dejarlo bien hecho.

<div class="col-lg-8">             <!--Entrada-->             <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>             <!--Anuncio-->             <?php if( $  wp_query->current_post == 3 ) { ?>                //mianuncio             <?php } ?>             <!--Anuncio-->             <div class="card-body phome">                 <a href="<?php the_permalink($  post);?>">                     <h2 class="entry-title"><?php the_title();?></h2>                 </a>                 <?php                      $  sep = '';                     foreach ((get_the_category()) as $  cat) {                         echo $  sep . '<a href="' . get_category_link($  cat->term_id) . '"  class="cathome ' . $  cat->slug . '" title="Ver todos los post de '. esc_attr($  cat->name) . '">' . $  cat->cat_name . '</a>';                     $  sep = ', ';                     }                 ?>                 <?php the_excerpt();?>             </div>             <?php endwhile; endif; ?>             <!--Entrada-->             <!--Paginacion-->             <div class="card-body">                <?php get_template_part('template-parts/content', 'paginacion');?>             </div>             <!--Paginacion-->         </div> 

Gracias por adelantado 😉

PHP no checkea bien si el usuario existe

El problema es que la ejecucciíon se queda en alguna parte porque el mensaje que envia es $ message = 'Account alredy exist'; declarado abajo en el else. Lo que quiere decir que no se está ejecutando bien ya que el usuario no existe.

<?php require 'database.php';     if (!empty($  _POST['email']) && !empty($  _POST['password']) && ($  granted=="true")) {         require 'database.php';         $  message = 'Ha ocurrido un error';         $  sql2= 'select id from users where email=\''. htmlentities($  _POST['email'], ENT_QUOTES). '\'';          $  records = $  conn->prepare($  sql2);         $  results = $  records->fetch(PDO::FETCH_ASSOC);         if( !count($  results) ) {             $  message = '';             if (!empty($  _POST['email']) && !empty($  _POST['password'])) {                 $  sql = "INSERT INTO users (email, password, user) VALUES (:email, :password, :user)";                 $  stmt = $  conn->prepare($  sql);                 $  stmt->bindParam(':email', $  _POST['email']);                 $  stmt->bindParam(':user', $  _POST['user']);             }             if($  _POST['password']==$  _POST['confirm_password']) {                 $  password = password_hash($  _POST['password'], PASSWORD_BCRYPT);                 $  stmt->bindParam(':password', $  password);             } else {                 $  error = 'password';             }                if ($  stmt->execute()) {                 $  message = 'Successfully created new user';             } else {                 if($  error=="password"){                     $  message = 'Credentials does not match';             } else {                 $  message = 'Sorry there must have been an issue creating your account';             }             }         } else {             $  error = 'exist';             $  message = 'Account alredy exist';         }     } else {         $  message = 'No tienes permisos para realizar está acción.';     } ?> 

Esta bien el uso de “do while ” en c# para esta ocasión

EL metodo si me funciona pero al consumir el servicio en la cual a veces puede que se caiga o algo similar impidiendo la consulta por eso hize un do while hasta que sea diferente de “-1” ya que es el codigo(estado) de cuando no reconoce la consulta. Estaria bien el uso o como sugieren que pueda hacerlo

string estado = String.Empty; string detalle = String.Empty; string cdr = String.Empty;  do {     var k = entidad.ConsultarEstado(c11, co, x, y, out  estado, out  cdr, out  detalle);  } while (estado == "-1"); 

¿Qué hice mal? El programa convierte los # arábigos a romanos pero el 6,7 y 8 (como uni, dec o cent) no se imprimen bien (todo lo demás funciona)

arab=0

arabmil=0

arabcen=0

arabdec=0

rom=””

arab=int(input(“Número árabigo: “))

while arab>=1 and arab<=5000:

if arab>=1000:     rom=(arab//1000)*"M"  if arab>=1000 and arab<=5000:     arabmil=(arab//1000)*1000     arab=arab-arabmil if arab>=900 and arab<1000:     rom=rom+"CM" if arab>=500 and arab<900:     rom=rom+"D"     arab=arab-500     rom=rom+(arab//100)*"C" if arab >= 400 and arab < 500:     rom = rom + "CD" if arab>=100 and arab<400:     rom=rom+(arab//100)*"C" if arab>=100 and arab<1000:     arabcent=(arab//100)*100     arab=arab-arabcent  if arab>=90 and arab<100:     rom=rom+"XC" if arab>=50 and arab<90:     rom=rom+"L"     arab=arab-50     rom=rom+(arab//10)*"X" if arab >= 40 and arab < 50:    rom = rom + "XL" if arab>=10 and arab<40:     rom=rom+(arab//10)*"X" if arab>=10 and arab<100:     arabdec=(arab//10)*10     arab=arab-arabdec  if arab>=9 and arab<10:     rom=rom+"IX" if arab>=5 and arab<9:     rom=rom+"V"     arab=arab-5     rom=rom+(arab*"I") if arab==4:     rom=rom+"IV" if arab>=1 and arab<4:     rom=rom+(arab*"I")   print("Número romano: %s" %rom) break