Je suis un développeur PHP/JavaScript et je débute dans WordPress. Le site Web de notre société repose sur WordPress. Cependant, j'ai créé de nombreuses pages PHP personnalisées sans trop me préoccuper du framework WordPress.
Lors de la création de formulaires pour éditer des choses, comme des articles, je remarque que beaucoup de choses ne fonctionnent pas correctement avec une requête $ wpdb-> (insérez du code SQL ici) mais fonctionne souvent avec WordPress wp_update_post () ou update_post_meta () , etc.
Je me demande si cela est dû au fait que les requêtes personnalisées nécessitent un contrôle nonce? Je suis également nouveau dans le domaine des nonces, mais je suis souvent déconcerté lorsque je travaille avec SQL pour obtenir ou modifier des données de la base de données WordPress quand et comment je le ferais.
D'un autre côté, WordPress ne contient-il pas des contrôles spéciaux de nonce?
Vous pourriez être un peu confus quant à l'objectif et à la fonction des nonces dans WordPress.
Lecture recommandée:
Un nonce est un "numéro utilisé une seule fois" destiné à protéger les URL et les formulaires de certains types d'utilisation abusive, malveillants ou autres.
Les nonces vous aident à vérifier, dans une certaine mesure, la validité de la demande adressée à une URL donnée et/ou l’utilisation d’un formulaire particulier pour soumettre des données, qu’il s’agisse du backend ou du front-end.
Cela n'a aucune incidence sur l'utilisation de wpdb
class .
Comme indiqué dans votre question précédente , votre requête ne fonctionnait pas en raison d'un synatx SQL incorrect.
Une bonne règle à suivre est que les URL ou les formulaires, en particulier ceux qui effectuent des actions sur votre base de données, doivent toujours être accompagnés d'un nonce sur lequel vous pouvez vérifier la validité de la requête.
Ensuite, lors de l’insertion de données dans la base de données, si vous devez écrire des requêtes SQL brutes, vous ne devez utiliser que la classe wpdb
, en particulier $wpdb->query()
, ainsi que la méthode Méthode $wpdb->prepare()
pour projeter par rapport à une injection SQL: Protect_Queries_Against_SQL_Injection_Attacks
Sous le capot, lorsqu’il utilise des fonctions telles que wp_insert_post
ou wp_update_post
, WordPress appelle soit $wpdb->insert()
, soit $wpdb->update()
, qui à son tour appelle $wpdb->query( $wpdb->prepate() )
, de sorte qu’il se charge de la désinfection pour vous.
C'est pourquoi il est recommandé d'utiliser les fonctions principales de WordPress lors de l'insertion ou de la mise à jour de publications, postmeta, utilisateurs, usermeta, etc.
En résumé, assurez-vous de lire les références décrites ci-dessus, car elles vous aideront grandement à mieux comprendre ce que sont les nonces, quand les utiliser et comment.