Lors de la mise à jour d'un méta de poste où l'entrée sera toujours un entier, devrais-je utiliser (int)
ou existe-t-il une fonction WordPress pour cela (par exemple, sanitize_text_field
)? Par exemple
if(isset($_POST['category_id'])){
update_post_meta($post->ID, 'category_id', (int)($_POST['category_id']));
}
Pour les entiers, KSES n'a pas de fonction spéciale.
Utilisez (int)
ou intval()
ou absint()
Voir plus: Validation des données - Entiers
Utilisez une instruction conditionnelle pour vérifier si $_POST['category_id'])
est d'abord un entier. La fonction PHP est is_int()
1
if(isset($_POST['category_id']) && is_int($_POST['category_id'])){
update_post_meta($post->ID, 'category_id', $_POST['category_id']);
}
Vous devriez également couper les espaces sur vos données $ _POST car is_int()
renverra false si la chaîne a des espaces 2 .
&safe_id = intval( $_POST['category_id'] );
if ( ! $safe_id ) {
$safe_id = '';
}
update_post_meta( $post->ID, 'category_id', $safe_id );
La fonction intval () convertit les entrées utilisateur en tant qu'entier. La valeur par défaut est zéro si l'entrée est une valeur non numérique. Nous vérifions ensuite si la valeur a été nulle. Si tel est le cas, nous enregistrerons une valeur vide dans la base de données. Sinon, nous enregistrerons le category_id correctement validé.