Când să folosești esc_html și când să folosești sanitize_text_field?
Se pare că acestea fac aproape același tip de operațiune. Așadar...
Când ar trebui să folosesc esc_html()
în loc de sanitize_text_field()
?

esc_html()
este mai mult sau mai puțin fără pierderi — pur și simplu transformă marcajul HTML în text codificat vizibil, astfel încât să nu fie interpretat ca markup de către browser.
Din punct de vedere semantic, este o funcție de escapare, deci este destinată să fie folosită pentru a face ieșirea pe pagină sigură.
sanitize_text_field()
, însă, elimină efectiv tot marcajul HTML, precum și spațiile albe în plus. Nu lasă decât text simplu.
Din punct de vedere semantic, este o funcție de sanitizare, deci este destinată să fie folosită pentru a face intrarea salvată sigură.

nu e mai bine să folosesc esc_html atât pentru afișare cât și pentru salvare? Oricum nu voi afișa nicio marcaj... deci când ar trebui să folosesc sanitize_text_field()?

@yeahman "mai bine" în ce sens? Ele fac lucruri distinct diferite. Eliminarea marcajului se folosește de obicei pentru lucruri unde nu se așteaptă marcaj, de exemplu un formular care primește un nume.

Mă refer că stochează ceea ce vede utilizatorul și a introdus... cum ai spus, este fără pierderi.. (de ex. el introduce "tag-ul <head> este locul unde ar trebui să incluzi fișierele css", el se așteaptă să vadă <head> în postarea sa).
Pentru un câmp de nume, aș controla intrarea prin validare; nu e mai potrivit?

Dacă introduceți conținut într-un array codificat JSON, iar valorile din array conțin "
(FOARTE probabil dacă conținutul dumneavoastră este, de exemplu, date de postare) atunci - deși sanitize_text_field()
AR FI lucrul corect de făcut deoarece SALVAȚI date, nu va funcționa. Va trebui să folosiți esc_html
, care codifică "
și astfel, în momentul în care decodați JSON-ul dumneavoastră, NU va afecta valoarea returnată.
