web-dev-qa-db-fra.com

Différentes façons d’afficher le titre

Je suis nouveau dans WordPress et j'apprends encore à partir de tutoriels, mais je suis confus avec leurs manières conflictuelles. Quelle est la différence entre ces deux façons de faire du titre un lien:

<h1>
    <a href="<?php the_permalink(); ?>">
    <?php the_title(); ?>
    </a>
</h1>

et

<?php the_title(sprintf(
            '<h1><a href="%s">',
            esc_url(get_permalink())),
            '</a></h1>');
?>

Est-ce un problème de performance? ou une sécurité? ou quoi?

merci.

Modifier:

Je sais que la fonction the_permalink() intègre la fonctionnalité esc_url alors que get_permalink ne l’a pas. Donc dans mon cas, y a-t-il encore une différence?

5
Emad Aldeen

La seconde forme peut aussi être pratique:

  • Nous pouvons également utiliser le paramètre tiers :

    the_title( $before, $after, $echo ); 
    

    assigner le titre à une variable.

    Voici un exemple:

    $title = the_title( '<h1 class="entry-title">', '</h1>', false );
    
  • Cela peut également aider à réduire l’utilisation des délimiteurs <?php ?>.

    Voici un exemple du Twenty Fifteen theme

     if ( is_single() ) :
         the_title( '<h1 class="entry-title">', '</h1>' );
     else :
         the_title( sprintf( '<h2 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' );
     endif;
    

    mais il y a bien sûr différentes manières de se débarrasser de telles parties if/else.

    Voici une forme alternative pour la comparaison:

    <?php if( is_single() ) : ?>
        <h1 class="entry-title"><?php the_title(); ?></h1>
    <?php else : ?>
        <h2 class="entry-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <?php endif; ?>
    
3
birgire

Aller avec le premier ensemble de code que vous avez fourni:

<h1>
    <a href="<?php the_permalink(); ?>">
    <?php the_title(); ?>
    </a>
</h1>

En termes simples, il est beaucoup plus propre et simple à utiliser. Comme vous l'avez déjà mentionné, the_permalink() couvre déjà la fonctionnalité esc_url(). Alors pourquoi avez-vous besoin d'écrire plus de code alors qu'une des fonctions s'en charge? Moins est plus dans ce cas.

1

Il existe plusieurs façons de faire la plupart des choses dans WordPress. Soit ça, ou il n'y a aucun moyen.

Votre premier exemple a plus de sens. La seconde semble inutilement complexe sans aucun bénéfice.

0
vancoder