web-dev-qa-db-fra.com

Faire écho ou ne pas faire écho?

En cherchant dans le code des articles liés, j'ai trouvé deux extraits de code presque identiques, la seule différence étant que l'on utilise echo:

echo '<li><a href="' . get_permalink() . '" title="' . the_title_attribute() . '">' . the_title() . '</a></li>';

et l'autre pas:

<li>
<a href="<?php the_permalink() ?>" title="<?php the_title_attribute() ?>"> <h4><?php the_title() ?></h4></a>
            </li>

Personnellement, je comprends mieux la deuxième version (qui mélange html avec php), mais je soupçonne que, WP étant ce que c'est (préférant toujours php au html), la première version peut être la manière officielle de le faire. des choses.

Y a-t-il une manière préférée de faire les choses dans ce cas? Et si oui pourquoi?

1
IXN

Les principales différences sont les suivantes: le premier extrait contient html à l'intérieur de php , tandis que le second contient php à l'intérieur de html . Les deux approches sont fondamentalement valables, les deux vont bien.

Cependant, je préférerais toujours (et recommanderais) d’avoir php en html car il est fort probable qu’une tierce personne/concepteur rencontre moins de difficultés à comprendre le code A mon humble avis il est moins susceptible de jouer avec.

6
tillinberlin

Premier

Je ne connais pas de solution privilégiée à cet égard, vous pouvez utiliser les deux où les demandes. Bien que le premier que vous avez mentionné contient des bugs:

echo '<li><a href="' . get_permalink() . '" title="' . the_title_attribute() . '">' . the_title() . '</a></li>';

the_title_attribute() ne revient pas, mais fait directement écho aux choses. Donc, quand vous l'utilisez dans une echo, procédez comme suit:

the_title_attribute( array( 'echo' => 0 ) )

de même, the_title() fait lui-même écho à l'ensemble, donc lorsque vous l'utilisez à l'intérieur d'une echo, utilisez plutôt get_the_title().

Donc, le premier corrigé serait:

echo '<li><a href="'. get_permalink() .'" title="'. the_title_attribute( array( 'echo' => 0 ) ) .'">'. get_the_title() .'</a></li>';

Deuxième

Pourquoi un élément de bloc est à l'intérieur d'un élément en ligne?

<li>
   <a href="<?php the_permalink() ?>" title="<?php the_title_attribute() ?>">
      <h4><?php the_title() ?></h4>
   </a>
</li>

ça ne devrait pas être comme ça, mais quelque chose comme ça:

<li>
   <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
      <?php the_title(); ?>
   </a>
</li>
3
Mayeenul Islam