基本的なご質問をさせて頂き、恐縮です。
wordpressで会員制サイトを作成しています。
その中で、現在ログインしているユーザーの情報を、リダイレクトページに移動した際にユーザー情報のニックネームを変更するようにしたいと思ってます。
最初に$wpdbについて全く知らなかったので、いろいろ調べてwordpressからdbに直接アクセスすることが出来ることを知りました。
その後、こちらでも既に質問されている内容も見ながら少しずつ理解をし、下記のようなコードをテスト的に書き込みました。
function test_ps() { global $wpdb; $data = $wpdb->get_results( " SELECT display_name FROM $wpdb->users WHERE user_login != 'testname01' /*条件設定*/ LIMIT 5 " ); foreach ($data as $value) { echo $value->display_name . "<br />"; } } add_shortcode('test', 'test_ps');
以上で書いた内容をfunctionにし、固定ページ(sumplepage)を作成し、ショートコードとして出力したら、正しく表示されました。
ショートコードにしているのは、固定ページでphpコマンドが書き込めないので、functions.phpに書き込み飛ばしています。これであっているのかわかりませんが、見よう見まねでやりました。
その後、実際にupdateで書き込みが出来るかを試してみました。
function test_ps() { global $wpdb; $result = $wpdb->update( $wpdb->users, array( 'display_name' => '更新しました', ), array( 'user_login' => testname01, ), array('%s'), array('%d') ); } add_shortcode('test', 'test_ps');
結果、myadmin、ユーザー情報を確認したら、正しく更新されていました。
以上の結果を元に、実際にやりたいことは
'user_login' => testname01,
先ほどのこの部分ではuser_loginと同じ文字列を指定しているので、もちろん特定のデータしか更新されません。
現在ログインしているユーザーのuser_idとdb内のuser_idが同じであれば、updateと言うことをしたいのです。
まだwordpressでのデータベース自体をかじり始めたばかりでどのように実行コマンドを入力すればいいのか悩んでいます。
実際にいろいろ試してみました。
'user_login' => .user_login,//db上のuser_loginとwordpressにログインしているユーザーのuser_loginが同じならば・・・
とも書いてみましたが、何も起こりませんでした。
無知で申し訳ございませんが、何卒ご教授お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。