Perbedaan antara fungsi the_permalink () dan get_permalink ()

9

Di WordPress saya menggunakan keduanya the_permalink()dan get_permalink()fungsinya, tetapi saya tidak bisa mendapatkan perbedaan apa pun dalam output dari kedua fungsi tersebut. Apa perbedaan antara kedua fungsi?

AliasgerSW
sumber

Jawaban:

16

the_permalink gema keluar tautan tautan pos saat ini ke frontend.

get_permalinkNamun mengembalikannya sebagai variabel, tetapi tidak menggemakannya. Anda juga dapat mengirimkan ID kiriman kepadanya jika Anda menginginkan tautan permanen kiriman lain.

the_permalink setara dengan:

echo get_permalink();

Yang sangat dekat dengan apa yang sebenarnya dilakukannya. Ini adalah implementasi dari the_permalink:

function the_permalink() {
    echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}
Tom J Nowell
sumber
3
Ini berarti semua fungsi seperti the_ID () dan get_ID () juga memiliki perbedaan yang sama seperti ini. Maaf tapi saya baru di wordpress itu sebabnya bertanya
AliasgerSW
@LiasgerSW itu polanya, ada beberapa pengecualian, tetapi umumnya seperti itu
Nicolai
@LiasgerSW ketika ragu, lihat kodenya. QueryPosts adalah situs yang bagus untuk mencari kode sumber fungsi WordPress.
shea
@ AliasgerSW dibuat oleh @Rarst kita sendiri
shea
@shea QueryPosts sudah pensiun. : - (\
Saya Orang Paling Bodoh
3

Jika Anda melihat Codex WordPress tentang ini, Anda akan melihat bahwa get_permalink()ada untuk digunakan di luar loop. the_permalink()untuk digunakan dalam loop. Itu cara termudah untuk melihatnya.

Matt Royal
sumber
mungkin cara mudah untuk melihatnya, tetapi bukan yang sangat lengkap
Nicolai
Yang pasti, @Tom J Nowell ♦ jawabannya jauh lebih ringkas. Jauh lebih baik dan dijelaskan dengan baik :-)
Matt Royal
-1

the_permalink()digunakan dalam loop posting, seperti the_title(). Baca lebih lanjut tentang loop di The Loop .

get_permalink()dapat digunakan dalam loop atau di luar loop. Dalam loop, fungsi mengembalikan (bukan gema) pos permalink saat ini. Tetapi di luar loop, itu membutuhkan ID pos.

Sebagai contoh:

echo get_permalink( 1 );

Ini akan menampilkan permalink halaman saat ini:

echo get_permalink();
Ehsaan
sumber
1
sebenarnya itu tidak memerlukan ID di luar loop
Nicolai