Care este diferența dintre get_bloginfo('url') și get_site_url()?

2 mai 2011, 11:26:56
Vizualizări: 25.5K
Voturi: 13

Dezvolt un plugin.

Vreau să știu diferența dintre

get_bloginfo('url');  

și

get_site_url();

Am obținut același rezultat, atunci care este diferența?

0
Toate răspunsurile la întrebare 4
0
21
  • get_bloginfo('url') apelează home_url() care la rândul său apelează get_home_url() și citește opțiunea home

  • get_bloginfo('wpurl') apelează site_url() care la rândul său apelează get_site_url() și citește opțiunea siteurl

  • get_bloginfo('siteurl') și get_bloginfo('home') sunt argumente învechite (deprecated) și returnează get_bloginfo('url') (argumentul siteurl este documentat greșit în Codex ca fiind echivalent cu wpurl, dar în codul actual nu este așa)

Diferența este că aceste două funcții se referă la opțiuni diferite, care de obicei sunt la fel.

Ar fi mai potrivit să comparăm get_bloginfo('url') cu get_home_url() sau get_bloginfo('wpurl') cu get_site_url(). Răspunsul este că aceste funcții sunt la niveluri diferite în lanț. De obicei, cu cât o funcție este mai adâncă în lanț, cu atât este mai flexibilă și cu atât mai puține filtre trece prin output.

2 mai 2011 16:31:14
2

Din 'wp-includes/general-template.php'

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

switch( $show ) {
      case 'home' : // DEPRECATED
      case 'siteurl' : // DEPRECATED
        _deprecated_argument([snipped]);
      case 'url' :
        $output = home_url();
        break;
      case 'wpurl' :
        $output = site_url();
        break;

Deci:

  • get_bloginfo('home'), get_bloginfo('siteurl') și get_bloginfo('url') sunt echivalente cu apelarea home_url() (de asemenea, rețineți că utilizarea parametrilor home și siteurl în get_bloginfo este învechită)
  • get_bloginfo('wpurl') este același lucru cu apelarea site_url()
2 mai 2011 11:53:22
Comentarii

get_bloginfo('siteurl') este demult învechit și în prezent este același lucru cu get_bloginfo('url') (home_url()). Ar avea mai mult sens să fie egal cu get_bloginfo('wpurl') (site_url()), dar din nu știu ce motiv, nu este. Văd că Codex spune altceva, ei bine - codul este diferit de documentație. Sursă.

Rarst Rarst
2 mai 2011 16:35:00

ok...interesant și confuz. modific răspunsul meu după ce am analizat codul!

anu anu
2 mai 2011 17:54:04
2

Verificați parametrii în Codex:

get_site_url / get_bloginfo

2 mai 2011 11:50:01
Comentarii

Caut diferențe specifice între cele două

I-M-JM I-M-JM
2 mai 2011 11:51:41

verificarea codex-ului vă va permite să vedeți diferențele specifice dintre cele două.

anu anu
2 mai 2011 15:41:46
2

Dacă îmi amintesc corect, diferența principală între home_url()/get_site_url() și omoloagele lor get_bloginfo() este că home_url()/get_site_url() returnează schema corectă http/https, în timp ce get_bloginfo() nu face acest lucru.

2 mai 2011 15:36:58
Comentarii

Incorect, get_bloginfo() apelează pur și simplu funcțiile site_url()/home_url() și va returna schema corectă la fel cum o fac acestea.

Rarst Rarst
2 mai 2011 16:40:21

Oh interesant! Se pare că asta s-a schimbat de când am verificat ultima dată general-template.php. :)

Chip Bennett Chip Bennett
2 mai 2011 17:16:56