Haruskah saya lepas dari fungsi wordpress seperti the_title, the_excerpt, the_content

15

Saya telah melihat kode tetapi saya tidak bisa melihat ada yang keluar dari fungsi seperti the_title the_content the_excerptdll. Saya mungkin tidak membacanya dengan benar. Apakah saya perlu keluar dari fungsi-fungsi ini dalam pengembangan tema seperti:

esc_html ( the_title () )

Sunting: sebagaimana ditunjukkan dalam jawaban di bawah, kode di atas salah terlepas - kode tersebut seharusnya sudah dibaca esc_html ( get_the_title () )

byronyasgur
sumber
Tidak, fungsi-fungsi itu sudah disanitasi, jadi tidak perlu melakukannya. Kecuali dalam kasus the_contentyang menghasilkan HTML dari editor TinyMCE, di mana Anda masukan. Ini lebih dicadangkan untuk input formulir atau data yang dibuat di ujung depan misalnya oleh pengguna Anda.
Adam

Jawaban:

15

Melarikan diri sepenuhnya tergantung pada konteks di mana Anda menggunakan fungsi. Apa yang aman untuk menampilkan <h1>tag di dalam , tidak selalu aman untuk ditampilkan untuk valueatribut bidang input, dan bahkan itu tidak selalu aman sebagai hrefnilai atribut ....

Singkatnya - lakukan sanitasi sendiri saat Anda mengeluarkannya. Meskipun dalam kasus the_title ()atau get_the_title (), esc_htmltidak perlu, karena WordPress menerapkan fungsi-fungsi berikut:

Catatan: the_title mencetak judul - jadi esc_html ( the_title () )tidak akan berfungsi. Demikian pula, the_contentmencetak konten (dalam hal apa pun, Anda akan mengharapkan konten untuk menampilkan HTML).

Stephen Harris
sumber
oops konyol saya ... ya tentu saja esc_html (the_title ()) tidak akan berfungsi. Terima kasih atas jawaban anda.
byronyasgur
4
Terkait: untuk menampilkan Judul Posting dalam atribut HTML , gunakanthe_title_attribute()
Chip Bennett
6

Ya dan tidak - tergantung pada apakah Anda ingin html di fungsi-fungsi itu menjadi output atau tidak. Jika Anda melarikan diri the_content(), misalnya, dan itu berisi <div>tag, tag itu sebenarnya akan ditampilkan sebagai halaman &lt;div&gt;.

Ngomong-ngomong, jika Anda keluar dari fungsi-fungsi tersebut, Anda akan ingin menggunakan persamaan "get_" mereka (mis. get_the_content()) Karena fungsi-fungsi tersebut menggemakan outputnya secara langsung.

Joseph Leedy
sumber
0

Anda cukup menulis fungsi seperti ini dan mengaitkannya ke filter the_title :

function my_escape_title( $title ){
    return esc_html( $title );
}
add_filter( 'the_title', 'my_escape_title' );
Vilius
sumber