Care este diferența dintre the_title() și echo get_the_title()?

16 dec. 2015, 12:11:08
Vizualizări: 20.7K
Voturi: 10

Doar o întrebare scurtă. Este vreo diferență între utilizarea

<?php the_title() ?>

sau

<?= get_the_title() ?>

Da, știu că unii pot considera utilizarea tag-ului echo scurt o practică nedorită, vreau doar să știu dacă există vreo diferență în rezultatul apelării acestor două funcții.

2
Comentarii

de ce este scurtul tag echo o practică proastă?

Joel M Joel M
29 iun. 2022 18:38:05

scurtul tag echo este o practică excelentă, elimină aglomerația inutilă a php și echo

th00ht th00ht
1 dec. 2022 12:43:26
Toate răspunsurile la întrebare 2
2
12

Cele două nu sunt 100% identice, deși sunt foarte apropiate.

  1. the_title() va afișa (echo) conținutul implicit, dar al treilea parametru poate fi folosit pentru a schimba acest comportament implicit.
  2. the_title() adaugă în față argumentul opțional $before și în spate argumentul opțional $after. Dacă tema sau plugin-ul folosesc aceste argumente, rezultatul celor două funcții va fi diferit.

Dacă arunci o privire la sursă, diferențele sunt ușor de observat:

32  /**
33   * Afișează sau returnează titlul curent al postării cu conținut opțional.
34   *
35   * @since 0.71
36   *
37   * @param string $before Opțional. Conținut de adăugat înaintea titlului.
38   * @param string $after  Opțional. Conținut de adăugat după titlu.
39   * @param bool   $echo   Opțional, implicit true. Dacă să afișeze sau să returneze.
40   * @return string|void String dacă parametrul $echo este false.
41   */
42  function the_title( $before = '', $after = '', $echo = true ) {
43          $title = get_the_title();
44  
45          if ( strlen($title) == 0 )
46                  return;
47  
48          $title = $before . $title . $after;
49  
50          if ( $echo )
51                  echo $title;
52          else
53                  return $title;
54  }

Se poate observa că the_title() preia datele folosind get_the_title() în prima linie, deci până în acel moment cele două funcții sunt identice. Dar the_title() apoi face manipulări suplimentare, în funcție de caz.

Același lucru este valabil și pentru alte funcții de tipul "afișează"/"nu afișa" precum the_content() și get_the_content(). Deși sunt asemănătoare, nu sunt exact la fel.

16 dec. 2015 17:14:57
Comentarii

Deci, tehnic, apelarea "the_title('', '', false);" ar fi la fel ca apelarea "get_the_title();". Nu că aș vrea să o folosesc așa. :)

Boykodev Boykodev
16 dec. 2015 19:10:40

Da, pare corect.

s_ha_dum s_ha_dum
16 dec. 2015 19:15:12
3
the_title()

va afișa titlul pentru tine și poate fi folosit doar în cadrul 'the loop' https://codex.wordpress.org/Function_Reference/the_title

get_the_title()

fără echo sau <?= va returna simplu titlul. Astfel îl poți stoca într-o variabilă și îl poți manipula dacă ai nevoie https://codex.wordpress.org/Function_Reference/get_the_title

16 dec. 2015 12:14:57
Comentarii

Deci echo get_the_title() are exact același rezultat ca și apelarea the_title() ?

Boykodev Boykodev
16 dec. 2015 12:17:29

da, are. Te rog să consulți linkurile de mai sus pentru mai multe informații din documentație

TommyBs TommyBs
16 dec. 2015 12:18:13

Asta am crezut și eu, aveam doar niște îndoieli pe care voiam să le clarific.

Boykodev Boykodev
16 dec. 2015 12:20:01