簡體   English   中英

WordPress - 在 REST api 請求中清理用戶輸入參數

[英]WordPress - Sanitize user input params in REST api request

我使用 wp register_rest_route() function 創建了一些自定義 rest 路由。所有路由都工作正常,但我需要清理將傳遞給其他 wp 函數並創建用戶的輸入。 我讀過map_deep() function,但是當我需要使用wp_insert_user()wp_update_user()時,我將為用戶元和用戶基本信息(如 email 等)嵌套數組,我需要應用sanitize_email或其他清理功能.

如果我直接在將傳遞給wp_insert_user()wp_update_user()函數的已定義數組中調用它們,清理函數是否會失效?

<?php
//example
wp_insert_user(
 'user_email' => sanitize_email( $request->get_param('email') ),
 'meta_input' => array(
  'gamer_tag' => sanitize_text_field( $request->get_param('gamer_tag') )
 )
);

?>

是的,清理功能將在您的代碼片段中起作用。

注意:您的代碼片段中存在問題,您沒有傳遞arrayobject而是直接編寫數組鍵和值,您需要將鍵包裝在數組中

正確的代碼在這里:

<?php
wp_insert_user(
    array( // You were missing this array wrap
        'user_email' => sanitize_email( $request->get_param( 'email' ) ),
        'meta_input' => array(
            'gamer_tag' => sanitize_text_field( $request->get_param( 'gamer_tag' ) ),
        ),
    )
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM