Ist es notwendig, LIKE-Ausdruck in WP_User_Query zu umgehen?

Bei der Suche nach WP_User_Query mit WP_User_Query bin ich auf diese Antwort von @kaiser gestoßen, die hier einige tolle Antworten auf Stackexchange gegeben hat. Ich war jedoch verwirrt über die Verwendung von esc_attr , um dem LIKE-Ausdruck zu entkommen ( 'search' => '*' . esc_attr( $your_search_string ) . '*' ).

Ich glaube, dass WP_User_Query vorbereitete Aussagen verwendet, in denen eine solche Flucht überflüssig und eine sinnlose Übung wäre. Habe ich recht?

Zweitens, wenn überhaupt, muss Flucht getan werden, würde nicht like_escape() dem Zweck besser entsprechen?

Solutions Collecting From Web of "Ist es notwendig, LIKE-Ausdruck in WP_User_Query zu umgehen?"

like_escape() nur % und _ Zeichen. Die gesamte function sieht folgendermaßen aus:

 function like_escape($text) { return str_replace(array("%", "_"), array("\\%", "\\_"), $text); } 

Zitat aus dem Codex, esc_attr()

Codiert die Zeichen < ,>, &, “und” (kleiner, größer als, kaufmännisches Und, doppeltes Anführungszeichen und einfaches Anführungszeichen). Codiert niemals Entitäten doppelt.

Immer verwenden, wenn HTML-Attribute (insbesondere Formularwerte) wie Alt, Wert, Titel usw. entfernt werden.

(Hervorhebung von mir.)

Weiterführende Literatur: Datenvalidierung

Bearbeitet um hinzuzufügen – Ich habe den ersten Teil der Frage nicht WP_User_Query : Wenn WP_User_Query eine eigene Datenvalidierung durchführt, müssen wir wirklich esc_attr() überhaupt verwenden?

Die Codex-Seite für WP_User_Query scheint nicht zu sagen, ob eine Datenvalidierung durchgeführt wird. (Wenn man die Seite nach valid und escape sucht, wird auch nichts esc_attr() .) Dies, kombiniert mit einer Notiz von der esc_attr() Seite – ” esc_attr() niemals Entitäten doppelt ” – zeigt mir an, dass es keinen Schaden bei der Verwendung von esc_attr() auf die Werte, die du passierst. Lieber sicher als Nachsicht, vor allem mit nicht vertrauenswürdigen Benutzerdaten, oder?