Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

131
Vistas
¿Hay alguna manera de evitar la línea duplicada?

hola en un sitio web de wordpress tengo que enviar cierta cosa a cierto usuario mi código está debajo mi pregunta es cómo evitar esta duplicación de línea de eco

 if (is_user_logged_in() and get_current_user_id() != get_the_author_meta('ID')) { if (in_array('customer', (array) $user->roles)) { if (get_current_user_id() == $authorid) { ?> <i class="fa fa-comments send_designer_msg" designer_id="<?php echo get_the_author_meta("ID"); ?>" logo_number="<?php echo $entryno; ?>" aria-hidden="true"></i> <?php } } else { ?> <i class="fa fa-comments send_designer_msg" designer_id="<?php echo get_the_author_meta("ID"); ?>" logo_number="<?php echo $entryno; ?>" aria-hidden="true"></i> <?php } }

cualquier ayuda gracias

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La lógica condicional es difícil de entender.

Desea mostrar un ícono (basado en fontAwesome) para comentarios, solo disponible para usuarios registrados que cumplan con los siguientes requisitos:

  1. no es el 'diseñador' de esta publicación.
  2. tiene el papel de 'cliente'

No estoy seguro, su lógica condicional está configurada correctamente, ya que parece generar el marcado de comentarios para cualquier usuario que no sea el 'diseñador'... disculpe, pero ¿dónde está la diferencia entre author_id y designer_id?

Una implementación un poco más SECA podría ser este código:

 <?php $current_user_id = get_current_user_id(); $designer_id = get_the_author_meta("ID"); $author_id = '???'; $show_comment_icon = false; if (is_user_logged_in() && $current_user_id != $designer_id ) { // if user has role "customer" if (in_array ('customer', (array)$user->roles)) { // if currently logged in user is the author of the current post? if ( $current_user_id == $author_id) { $show_comment_icon = true; } } else { // if user is not a "customer" $show_comment_icon = true; } // comment icon html template $comment_icon = '<i class="fa fa-comments send_designer_msg" data-designer-id="'.$designer_id.'" data-logo-number="'.$entry_no.'" aria-hidden="true"> </i>'; // output your html if($show_comment_icon){ echo $comment_icon; } } ?>

Aunque este fragmento de código revisado ciertamente falla: algunas recomendaciones para evitar el código duplicado y mejorar la legibilidad en php:

  • elija un concepto de cierre apropiado (al cambiar entre php y html)*
  • separar la 'compilación de datos' y la lógica de la salida
  • inserte comentarios en su código generosamente
  • guardar valores consultados de forma recurrente (p. ej., devueltos por funciones/clases) en variables
  • haga el esfuerzo de revisar su código al final (probablemente nadie lo esté recompensando por este esfuerzo, además de usted mismo, para poder entender su código incluso después de unos años)

encerrando/cambiando entre código php y html Su código es válido. Sin embargo, la legibilidad sufre. Una regla general factible para decidir si usar php-in-html o html-in-php más cerrado es la proporción.

Si hay más procesamiento de php involucrado (condiciones, cálculos, filtrado, etc.), mejor use una variable para definir su salida html.

Si la parte de la plantilla html es predominante, podría usar algo como esto (similar a la propuesta de bucle de wordpress predeterminada):

 <?php if($condition_fullfilled) :?> <p>Condition is fullfilled – there is a lot more html to come!</p> .... (200 lines of html markup) <?php else: ?> <p>Nothing found, matching your conditions</p> <?php endif; ?>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda