web-dev-qa-db-fra.com

Utilisation préférée de home_url ()?

Ce n'est pas un problème mais je suis simplement curieux de voir comment les autres utilisent cette fonction. Le codex ne dit pas vraiment quelle méthode d’utilisation est recommandée, bien qu’il donne quelques exemples simples.

Par exemple, si mon domaine est example.com, je peux écrire l'un de ces éléments:

<a href="<?php echo esc_url( home_url() ); ?>/example">Example Page</a>
<a href="<?php echo esc_url( home_url('/') ); ?>example">Example Page</a>
<a href="<?php echo esc_url( home_url('/example') ); ?>">Example Page</a>
<a href="<?php echo esc_url( home_url('example') ); ?>">Example Page</a>
<a href="<?php echo esc_url( home_url('example', 'relative') ); ?>">Example Page</a>

Et ils produiront tous le même résultat (simplifié):

<a href="domain.com/example">Example Page</a>

J'utilise le troisième exemple donné le plus souvent et je comprends l'utilisation du dernier exemple, car je dois parfois créer un lien vers une page sécurisée (https: //), mais quel est l'intérêt des autres variantes acceptées?

Une méthode est-elle considérée comme une "meilleure pratique" ou faut-il la laisser à la préférence personnelle?

3
bebaps

Des millions de manières dans WordPress d'utiliser les fonctions home_url () ou soeur. La question à poser est: quelle fonction est un wrapper pour une autre fonction?

Pour résumer, si vous aimez concaténer, vous pouvez utiliser:

get_bloginfo('url');
get_option('home');

Si vous aimez avoir le contrôle sur le schéma (http ou https)

get_site_url( $blog_id, $path, $scheme );
get_home_url( $blog_id, $path, $scheme );
site_url( $path, $scheme );

site_url appelle get_site_url:

function site_url( $path = '', $scheme = null ) {
    return get_site_url( null, $path, $scheme );
}

Vous pouvez aimer get_bloginfo('url'); ou get_bloginfo('wpurl'); puisqu'il retournera:

    case 'url' :
        $output = home_url();
        break;
    case 'wpurl' :
        $output = site_url();
        break;

La primitive est: get_option('home') Parce que la fonction get_home_url appelle get_option('home'). Ce que j'ai écrit pour get_option('home') est similaire pour get_option('siteurl') provenant de get_bloginfo('wpurl').

0
prosti