Tôi có nên thoát các hàm wordpress như the_title, the_excerpt, the_content


15

Tôi đã xem mã nhưng tôi không thể thấy bất kỳ lối thoát nào trên các chức năng như the_title the_content the_excerptv.v. Tôi có thể không đọc đúng. Tôi có cần thoát khỏi các chức năng này trong phát triển chủ đề như:

esc_html ( the_title () )

Chỉnh sửa: như đã chỉ ra trong các câu trả lời bên dưới đoạn mã trên là sai bất kể - mã nên đọc esc_html ( get_the_title () )


Không, các chức năng đó đã được khử trùng, do đó không bắt buộc phải làm như vậy. Ngoại trừ trong trường hợp the_contentxuất HTML từ trình soạn thảo TinyMCE, trong đó bạn nhập. Điều này được dành riêng nhiều hơn cho các đầu vào mẫu hoặc dữ liệu được tạo ở mặt trước, ví dụ như bởi người dùng của bạn.
Adam

Câu trả lời:


15

Thoát hoàn toàn phụ thuộc vào bối cảnh bạn đang sử dụng các chức năng. Những gì an toàn để hiển thị bên trong <h1>các thẻ, không nhất thiết phải an toàn để hiển thị cho valuethuộc tính của trường đầu vào và thậm chí điều đó không nhất thiết phải an toàn như một hrefgiá trị thuộc tính ....

Nói tóm lại - hãy tự thực hiện vệ sinh khi bạn xuất nó. Mặc dù trong trường hợp the_title ()hoặc get_the_title (), esc_htmllà không cần thiết, vì WordPress áp dụng các chức năng sau:

Lưu ý: the_title in tiêu đề - vì vậy esc_html ( the_title () )sẽ không hoạt động. Tương tự, the_contentin nội dung (trong mọi trường hợp, bạn mong muốn nội dung sẽ hiển thị HTML).


Rất tiếc cho tôi ... vâng tất nhiên esc_html (the_title ()) sẽ không hoạt động. Cảm ơn câu trả lời của bạn.
byronyasgur

4
Liên quan: để xuất Tiêu đề bài trong thuộc tính HTML , sử dụngthe_title_attribute()
Chip Bennett

6

Có và không - phụ thuộc vào việc bạn có muốn html trong các hàm đó được xuất hay không. Nếu bạn thoát the_content(), ví dụ, và nó chứa một <div>thẻ, thẻ đó thực sự sẽ được xuất ra trang &lt;div&gt;thay thế.

Nhân tiện, nếu bạn thoát khỏi đầu ra của các hàm đó, bạn sẽ muốn sử dụng các hàm tương đương "get_" của chúng (ví dụ get_the_content()) vì các hàm đó lặp lại trực tiếp đầu ra của chúng.


0

Bạn có thể chỉ cần viết một hàm như thế này và nối nó vào bộ lọc_title :

function my_escape_title( $title ){
    return esc_html( $title );
}
add_filter( 'the_title', 'my_escape_title' );
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.