Qual è la differenza tra the_title() e echo get_the_title()?

16 dic 2015, 12:11:08
Visualizzazioni: 20.7K
Voti: 10

Solo una piccola domanda. C'è qualche differenza nell'utilizzo di

<?php the_title() ?>

oppure

<?= get_the_title() ?>

Sì, so che qualcuno può considerare l'utilizzo del tag echo abbreviato una cattiva pratica, voglio solo sapere se c'è qualche differenza nel risultato della chiamata di queste due funzioni.

2
Commenti

perché il tag short echo è considerata una cattiva pratica?

Joel M Joel M
29 giu 2022 18:38:05

il tag short echo è un'ottima pratica perché elimina il superfluo disordine di php end echo

th00ht th00ht
1 dic 2022 12:43:26
Tutte le risposte alla domanda 2
2
12

I due non sono identici al 100%, anche se sono molto simili.

  1. the_title() effettuerà un echo del contenuto di default ma il terzo parametro può essere utilizzato per modificare questo comportamento predefinito.
  2. the_title() antepone l'argomento opzionale $before e aggiunge l'argomento opzionale $after. Se il tema o un plugin utilizzano questi argomenti, l'output delle due funzioni sarà diverso.

Se dai un'occhiata al codice sorgente, le differenze sono facili da individuare:

32  /**
33   * Visualizza o recupera il titolo corrente del post con contenuto opzionale.
34   *
35   * @since 0.71
36   *
37   * @param string $before Opzionale. Contenuto da anteporre al titolo.
38   * @param string $after  Opzionale. Contenuto da appendere al titolo.
39   * @param bool   $echo   Opzionale, default true. Se visualizzare o restituire.
40   * @return string|void Stringa se il parametro $echo è 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  }

Puoi vedere che the_title() recupera i dati utilizzando get_the_title() nella sua prima riga, quindi a quel punto le due sono identiche. Ma the_title() poi effettua ulteriori manipolazioni, potenzialmente.

Lo stesso vale per alcune altre funzioni "echo"/"non echo" come the_content() e get_the_content(). Sebbene simili, non sono esattamente identiche.

16 dic 2015 17:14:57
Commenti

Quindi, tecnicamente chiamare "the_title('', '', false);" sarebbe lo stesso che chiamare "get_the_title();". Non che voglia usarlo in quel modo. :)

Boykodev Boykodev
16 dic 2015 19:10:40

Sì, sembra corretto.

s_ha_dum s_ha_dum
16 dic 2015 19:15:12
3
the_title()

mostrerà il titolo per te e può essere utilizzato solo all'interno del 'loop' https://codex.wordpress.org/Function_Reference/the_title

get_the_title()

senza echo o <?= semplicemente restituirà il titolo. Quindi potresti memorizzarlo in una variabile e manipolarlo se necessario https://codex.wordpress.org/Function_Reference/get_the_title

16 dic 2015 12:14:57
Commenti

Quindi echo get_the_title() ha esattamente lo stesso risultato di chiamare the_title() ?

Boykodev Boykodev
16 dic 2015 12:17:29

sì, è così. Per favore guarda i link sopra per maggiori informazioni dalla documentazione

TommyBs TommyBs
16 dic 2015 12:18:13

È quello che pensavo, avevo solo qualche dubbio che volevo chiarire.

Boykodev Boykodev
16 dic 2015 12:20:01