Чи слід уникати функцій wordpress, таких як the_title, the_excerpt, the_content


15

Я дивився на код, але я не міг побачити будь-які втечі на таких функціях, як the_title the_content the_excerptт. Д. Я, можливо, не читав його правильно. Чи потрібно уникати таких функцій у розробці тем, як:

esc_html ( the_title () )

Редагувати: як зазначено у відповідях нижче, наведений вище код невірно - код повинен був прочитати esc_html ( get_the_title () )


Ні, ці функції вже санізовані, тому цього не потрібно робити. За винятком випадків, the_contentколи виводиться HTML з редактора TinyMCE, в який ви вводите. Це більше зарезервовано для введення форми або даних, створених на передній частині, наприклад, вашими користувачами.
Адам

Відповіді:


15

Утеча повністю залежить від контексту, в якому ви використовуєте функції. Те, що є безпечним для відображення всередині <h1>тегів, не обов'язково є безпечним для відображення для valueатрибута поля введення, і навіть це не обов'язково може бути безпечним як hrefзначення атрибута ....

Коротше кажучи - виконайте санітарну обробку самостійно, коли ви виводите її. Хоча у випадку the_title ()або get_the_title (), esc_htmlце не потрібно, оскільки WordPress застосовує такі функції:

Примітка: the_title друкує заголовок - тому esc_html ( the_title () )не вийде. Аналогічно the_contentдрукується вміст (у будь-якому випадку ви очікуєте, що вміст відобразить HTML).


oops нерозумно мені ... так, звичайно, esc_html (the_title ()) не буде працювати. Дякую за вашу відповідь.
byronyasgur

4
Пов’язано: для виводу заголовка публікації в атрибуті HTML , використовуйтеthe_title_attribute()
Chip Bennett

6

Так і ні - залежить від того, хочете ви, щоб HTML у цих функціях виводився чи ні. Якщо the_content(), наприклад, ви втекли , і він містить <div>тег, цей тег фактично буде виведений на сторінку як &lt;div&gt;замість цього.

До речі, якщо уникнути виведення цих функцій, ви хочете використовувати їхні еквіваленти "get_" (наприклад get_the_content()), оскільки ці функції перегукуються безпосередньо з їх результатами.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.