wp_usermetaの情報の取り出し
-
あまりにバージョンが古いWordPressを使用しているため、リニューアル目的で登録されているユーザー情報を抽出したいと考えています。
User2CSVというプラグイン(https://yoast.com/wordpress/plugins/users-to-csv/)が入っており、それを使って管理画面からユーザー情報をCSVに書き出せるようになっています。
登録データに、会社名や住所、電話番号などが含まれているため、それらを抽出したいのですがUser2CSVではwp_usersの情報しか取得できないようなので、改造して抜き出せるようにしたいと考えています。
該当部分のコードを記します。$query = "SELECT ID as UID, user_email, user_url, user_nicename, user_registered FROM $wpdb->users"; $results = $wpdb->get_results($query,ARRAY_A); $i=0; if ($table == 'users') { while ($i < count($results)) { $query = "SELECT meta_value FROM ".$wpdb->prefix."usermeta WHERE user_id = ".$results[$i]['UID']." AND meta_key = "; $fnquery = $query . "'first_name'"; $results[$i]['first_name'] = $wpdb->get_var($fnquery); $lnquery = $query . "'last_name'"; $results[$i]['last_name'] = $wpdb->get_var($lnquery); $nnquery = $query . "'nickname'"; $results[$i]['nickname'] = $wpdb->get_var($nnquery); $i++; } } $csv .= arrayToCsvString($results, $sep);
抜き出したい会社名や住所、電話番号などの情報は、wp_usermetaに入っており、カスタムフィールドのように
[umeta_id] => 587 [user_id] => 42 [meta_key] => address [meta_value] => ????????
[umeta_id] => 511 [user_id] => 37 [meta_key] => tel [meta_value] => 090-????-????
のように配列で格納されています。
$results[$i][‘UID’]とwp_usermetaのuser_idをマッチさせて$results[$i][***]に格納させていけば良いというのは分かるのですが、PHPおよびmysqlの知識が足りなく、どのように呼び出せばよいのか全然わかりません。ちなみに、直接DBから抽出しようとmb_convert_encodingや文字コードなどいろいろ試したのですが、文字化けして2バイト文字がすべて???と表示されてしまい表示できませんでした。
latinから文字化けせずに表示できる方法があるのであれば、そちらでも結構です。このような質問で理解して頂けるかも不安なところですが、ご教示頂ければ幸いです。
よろしくお願い致します。
- トピック「wp_usermetaの情報の取り出し」には新たに返信することはできません。