source

워드프레스에서 여러 meta_key에 대한 사용자 메타 업데이트 방법

myloves 2023. 3. 29. 22:05

워드프레스에서 여러 meta_key에 대한 사용자 메타 업데이트 방법

WordPress에서 사용자의 여러 meta_key를 업데이트하려고 합니다.

update_user_meta( $user_id, array( 'nickname' => $userFirstName, 'first_name' => $userFirstName, 'last_name' => $userLastName , 'city' => $userCityID , 'gender' => $userGenderID) );

근데 안 되네.사용자에 대해 여러 meta_key를 업데이트하려면 어떻게 해야 합니까?

시험:

<?php
$user_id = 1234;

$metas = array( 
    'nickname'   => $userFirstName,
    'first_name' => $userFirstName, 
    'last_name'  => $userLastName ,
    'city'       => $userCityID ,
    'gender'     => $userGenderID
);

foreach($metas as $key => $value) {
    update_user_meta( $user_id, $key, $value );
}

따라서 가 다음 문자열 인수만 받아들이는 어레이를 전달하지 않고$meta_key, 어레이를 루프하여 호출합니다.update_user_meta각 키/값 쌍에 사용할 수 있습니다.

편집:

WordPress는 한 번에 여러 메타를 업데이트할 수 있는 기본 제공 방식을 제공하지 않습니다.내장 기능을 사용하는 이유 중 하나는 필터와 후크를 등록하여 메타 정보를 조작할 수 있기 때문입니다.직접 업데이트하면 호출되지 않습니다.

단, 다음과 같은 것을 시도할 수 있습니다(테스트되지 않은 코드).

$columns  = implode(" = '%s', ", array_keys($metas)) . " = '%s'";
$values   = array_values($metas);
$values[] = $user_id;
$table    = _get_meta_table('user');
$sql      = "UPDATE $table SET $columns WHERE user_id = %d";
$wpdb->query(
    $wpdb->prepare($sql, $values)
);

동일한 메타 키로 값을 추가하려고 시도하고 세 번째 값을 다음과 같이 false로 설정하는 것을 기억하십시오.

add_user_meta( $user_id , $meta_key , $value1 , false );
add_user_meta( $user_id , $meta_key , $value2 , false );
add_user_meta( $user_id , $meta_key , $value3 , false );

메타 키를 사용하여 사용자 메타를 가져오면 다음과 같이 반환됩니다.

['$value1','$value2','$value3']

$userid = get_current_user_id();
$name =;
$140 =;

wp_update_user(array)('ID' => $userid, 'first_name' => $name, 'last_name' => $wp );

언급URL : https://stackoverflow.com/questions/30610780/how-to-update-user-meta-for-multiple-meta-key-in-wordpress