В чем разница между get_bloginfo('url') и get_site_url()?

2 мая 2011 г., 11:26:56
Просмотры: 25.5K
Голосов: 13

Я разрабатываю плагин.

Я хочу знать разницу между

get_bloginfo('url');  

и

get_site_url();

Я получаю одинаковый результат, так в чем же разница?

0
Все ответы на вопрос 4
0
21
  • get_bloginfo('url') вызывает home_url(), которая вызывает get_home_url() и читает опцию home

  • get_bloginfo('wpurl') вызывает site_url(), которая вызывает get_site_url() и читает опцию siteurl

  • get_bloginfo('siteurl') и get_bloginfo('home') являются устаревшими аргументами и возвращают get_bloginfo('url') (аргумент siteurl в Codex ошибочно указан как равный wpurl, но в текущем коде это не так)

Разница заключается в том, что эти цепочки функций обращаются к разным опциям, которые обычно одинаковы.

Более правильно сравнивать get_bloginfo('url') с get_home_url() или get_bloginfo('wpurl') с get_site_url(). Тогда ответом будет то, что эти функции находятся на разных уровнях цепочки. Как правило, чем глубже функция - тем она гибче и тем меньше фильтров проходит её вывод.

2 мая 2011 г. 16:31:14
2

Из 'wp-includes/general-template.php'

function get_bloginfo( $show = '', $filter = 'raw' ) {

switch( $show ) {
      case 'home' : // УСТАРЕЛО
      case 'siteurl' : // УСТАРЕЛО
        _deprecated_argument([сокращено]);
      case 'url' :
        $output = home_url();
        break;
      case 'wpurl' :
        $output = site_url();
        break;

Итак:

  • get_bloginfo('home'), get_bloginfo('siteurl') и get_bloginfo('url') эквивалентны вызову home_url() (также обратите внимание, что использование параметров home и siteurl в get_bloginfo устарело)
  • get_bloginfo('wpurl') аналогично вызову site_url()
2 мая 2011 г. 11:53:22
Комментарии

get_bloginfo('siteurl') давно устарел и в настоящее время совпадает с get_bloginfo('url') (home_url()). Логичнее было бы, чтобы он равнялся get_bloginfo('wpurl') (site_url()), но по какой-то причине это не так. Я вижу, что Codex говорит иное, но код отличается от документации. Источник.

Rarst Rarst
2 мая 2011 г. 16:35:00

ок...интересно и запутанно. редактирую свой ответ, изучив код!

anu anu
2 мая 2011 г. 17:54:04
2

Ознакомьтесь с параметрами в Codex:

get_site_url / get_bloginfo

2 мая 2011 г. 11:50:01
Комментарии

Я ищу конкретные различия между этими двумя

I-M-JM I-M-JM
2 мая 2011 г. 11:51:41

проверка codex позволит вам увидеть конкретные различия между ними.

anu anu
2 мая 2011 г. 15:41:46
2

Если я правильно помню, основное различие между home_url()/get_site_url() и их аналогами в get_bloginfo() заключается в том, что home_url()/get_site_url() возвращают правильную схему http/https, в то время как get_bloginfo() этого не делает.

2 мая 2011 г. 15:36:58
Комментарии

Неверно, get_bloginfo() просто вызывает функции site_url()/home_url() и будет возвращать правильную схему, как и они.

Rarst Rarst
2 мая 2011 г. 16:40:21

О, отлично! Похоже, это изменилось с тех пор, как я в последний раз смотрел general-template.php. :)

Chip Bennett Chip Bennett
2 мая 2011 г. 17:16:56