Hướng dẫn sử dụng các hàm esc_html_e(), esc_html__(), esc_html() trong WordPress

Liên quan tới việc hiển thị string trong mã nguồn wordpress, ta có khá nhiều hàm với các chức năng khác nhau như: esc_html(), esc_html__(), esc_html_e(), esc_attr, esc_html_x, esc_attr_e()… Trong khuôn khổ bài viết này, chúng ta cùng nghiên cứu vè 3 hàm cơ bản và hay sử dụng nhất trong quá trình làm theme hay plugins là esc_html_e(), esc_html__(), esc_html().

Hàm esc_html()

Hàm này có chức năng gần tương tự như strip_tags trong PHP, và encode các mã html để hiển thị ra màn hình của người dùng. Nói một cách nôm na là nó chuyển đoạn mã html hiển thị ra mà không bị chuyển đổi. Ví dụ bạn có một đoạn code hiển thị link muốn cho người đọc xem code thì dùng esc_html() để hiển thị. Vì bình thường nếu cho code html thì ra ngoài nó sẽ hiện luôn cái liên kết đó. Các bạn có thể tìm thấy hàm esc_html() tại file này: wp-includes/formatting.php. Đây là hàm nguyên bản của WordPress:

Cách sử dụng hàm esc_html()

Hướng dẫn sử dụng hàm esc_html() trong WordPress

Hướng dẫn sử dụng hàm esc_html() trong WordPress

Hàm esc_html() trả về dạng string và sẽ KHÔNG hiện ra trên trình duyệt. Muốn hiện nội dung trả về của hàm esc_html() thì bạn phải echo nó ra.

Giá trị trả về sẽ là:

Như các bạn thấy, đoạn html bên trên đã được encode, và như vậy khi echo ra nó sẽ hiện y như này:
<a href=”https://huyhoa.net”>Huy Hoa</a> thay vì hiển thị như này: Huy Hoa

Tham khảo các hàm hay sử dụng trong wordpress:

33 Hàm Trong WordPress Hay Sử Dụng Nhất

Hàm esc_html_e()

Có một hàm tương tự và nhìn khá giống hàm esc_html(), và có chức năng tương tự là esc_html_e()

Sự khác nhau giữa hàm esc_html với hàm esc_html_e() là hàm esc_html_e() sẽ dịch (nếu website có nhiều ngôn ngữ) và hiển thị luôn cái đoạn code html cần hiển thị. Bạn không cần phải echo nó nữa. Hàm esc_html_e() có thể được tìm thấy trong file này: wp-includes/l10n.php.

Cách sử dụng hàm esc_html_e()

Hướng dẫn sử dụng hàm esc_html_e() trong WordPress

Hướng dẫn sử dụng hàm esc_html_e() trong WordPress

Hàm esc_html_e() dịch đoạn văn bản và mã hóa html code rồi hiển thị ra màn hình. Cách sử dụng như sau:

Đoạn code bên trên sẽ dịch Title tùy theo từng ngữ cảnh cụ thể trên web của bạn.  Lưu ý là hàm esc_html_e() nó mã hóa html nên trong tham số $text thì bạn không thể để html hay là tham số $value của PHP, vì nó sẽ mã hóa luôn tham số đó. Nếu bạn muốn dịch và kèm tham số thì thay vì dùng hàm esc_html_e() thì các bạn có thể dùng hàm translate. Ví dụ:

Hàm esc_html__()

Hàm esc_html__() chính là phiên bản không echo của hàm esc_html_e() ở bên trên. Hàm này có chức năng tương tự như hàm esc_html_e() nhưng mà trả về giá trị string chứ không hiển thị ra màn hình.

Các bạn cũng có thể tìm thấy hàm này tại file: wp-includes/l10n.php.

Như các bạn có thể thấy, hàm này nó chính là hàm esc_html() bên trên nhưng nó kèm theo hàm translate để dịch tham số text.

Cách sử dụng hàm esc_html__()

Hướng dẫn sử dụng hàm esc_html__() trong WordPress

Hướng dẫn sử dụng hàm esc_html__() trong WordPress

Hàm esc_html__() dịch đoạn văn bản, mã hóa html code trong đó rồi trả về giá trị là dạng string. Muốn sử dụng nó để hiển thị ra màn hình thì bạn phải echo nó ra.

Các bạn có thể thấy, hàm esc_html__() và hàm esc_html_e() có chức năng tương tự nhau. Sự khác nhau là esc_html__() thì KHÔNG hiển thị (tức không echo nội dung), còn hàm esc_html_e() thì HIỂN THỊ nội dung ra bên ngoài trình duyệt.

Ttham khảo thêm thông tin của các hàm này ở trang hỗ trợ chính thức trên trang WordPress for Developer

Hàm esc_html__(): tại đây.

Hàm esc_html(): tại đây.

Hàm esc_html_e(): tại đây.

Đánh giá
Share.
About Author

Leave A Reply