web-dev-qa-db-fra.com

get_template_directory () vs bloginfo ('template_directory') vs TEMPLATEPATH

Je lisais cet article: Erreurs courantes dans le développement de WordPress et comment les corriger , et dans ce document, leur auteur dit:

Obtenir l'emplacement du thème: Si vous utilisez TEMPLATEPATH ou bloginfo ('template_directory'). Arrête! Vous devriez utiliser le très utile get_template_directory () comme vu dans mes exemples ci-dessus.

Mais il n'élabore pas. Quel est le problème avec bloginfo()?

15
coopersita

Pour faire une histoire courte: get_bloginfo( 'template_directory' ) et get_bloginfo( 'template_url' ), retournez simplement get_template_directory_uri().

Ainsi, vous pouvez raccourcir ce deuxième appel simplement en vous référant directement à la dernière balise de modèle.

Consultez la source pour get_bloginfo() .

Quelques autres:

  • 'url' => home_url()
  • 'wpurl' => site_url()
  • 'stylesheet_url' => get_stylesheet_uri()
  • 'stylesheet_directory' => get_stylesheet_directory_uri()
  • 'locale' => get_locale()

Modifier

Notez également que: TEMPLATEPATH et STYLESHEETPATH sont sur le point d'être obsolètes , il est donc préférable de les remplacer simplement, maintenant, par get_template_directory() et get_stylesheet_directory().

Modifier 2

Re: ce commentaire

Juste ce que j'allais dire :). J'ajouterais que get_template_directory() renvoie le chemin et get_template_directory_uri() l'url. Donc, l'auteur n'est pas cohérent: get_bloginfo( 'template_directory' ) et get_template_directory() renvoient des choses différentes!

Reportez-vous à la source :)

case 'template_directory':
case 'template_url':
    $output = get_template_directory_uri();
    break;

Re: ce commentaire:

Si vous développez des thèmes enfants, vous devez utiliser explicitement get_stylesheet_directory(). Quelqu'un me corrige si je me trompe.

C'est vrai, mais ça a toujours été le cas. get_bloginfo() ne renvoie pas rien lié à get_stylesheet_directory(). Il ne renvoie que get_stylesheet_uri() et get_stylesheet_directory_uri().

16
Chip Bennett