get_template_directory () против bloginfo ('template_directory') против TEMPLATEPATH


16

Я читал эту статью: Распространенные ошибки в разработке WordPress и как их исправить , и в ней автор пишет:

Получение местоположения темы: Если вы используете TEMPLATEPATH или bloginfo ('template_directory'). Стоп! Вы должны использовать очень полезную функцию get_template_directory (), как показано в моих примерах выше.

Но он не уточняет. Что в этом плохого bloginfo()?

Ответы:


17

Чтобы сделать длинную историю короткой: get_bloginfo( 'template_directory' )и get_bloginfo( 'template_url' )просто вернуться get_template_directory_uri().

Таким образом, вы можете сократить этот второй вызов, просто обратившись непосредственно к последнему тегу шаблона.

Обратитесь к источнику дляget_bloginfo() .

Несколько других:

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

редактировать

Обратите также внимание: TEMPLATEPATHи STYLESHEETPATHони устарели , так что вам лучше просто заменить их сейчас, get_template_directory()и get_stylesheet_directory(), соответственно.

Редактировать 2

Re: этот комментарий

Как раз то, что я собирался сказать :). Я бы добавил, что get_template_directory()возвращает путь и get_template_directory_uri()URL. Так что автор не последовательн: get_bloginfo( 'template_directory' )и get_template_directory()возвращайте разные вещи!

Обратитесь к источнику :)

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

Re: этот комментарий:

Единственное предостережение при разработке дочерних тем, которые вам нужно использовать get_stylesheet_directory()явно. Кто-то поправит меня, если я ошибаюсь.

Правда, но так было всегда. get_bloginfo()не возвращает ничего связанного с get_stylesheet_directory(). Это только возвращает get_stylesheet_uri()и get_stylesheet_directory_uri().


Единственное предостережение при разработке дочерних тем - вам нужно явно использовать get_stylesheet_directory (). Кто-то поправит меня, если я ошибаюсь.
Стив

Благодарность! Мне просто интересно, почему в WP так много таких функций, которые просто вызывают другую функцию, что мы тогда должны не использовать ...
coopersita

В этом случае, я думаю, что причина в том, чтобы просто поддерживать обратную совместимость с get_bloginfo()параметрами.
Чип Беннетт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.