ユーザーのnicknameとuser_nicenameについて
-
WP_User_Queryでユーザー一覧を表示しています。
そのユーザー一覧をニックネームでソートしているのですが、思い通りの並び順にならなくて困っています。'order' => 'ASC', 'orderby' => 'user_nicename'
↑こちらで設定していますが、ニックネームを変更しても並び順が変更されません。
例えば、あるユーザーのニックネームが「aaa」だったものを「zaaa」に変更すると並び順は一番最後になるはずですが、並び順は変わらず一番最初のままです。
それで、get_the_author_metaでnicknameとuser_nicenameを確認すると
nickname:zaaa
user_nicename:aaa
という感じでニックネームが2種類になっていました。では、「’orderby’ => ‘nickname’」にすれば良いのかと思って試してみましたが並び順は変更されませんでした。
CodexのWP User Queryのorderbyに「’nicename’ / ‘user_nicename’ – ユーザーニックネームの順。」とあるので、nicknameではなく「’orderby’ => ‘nicename’」にしても変わらず…
ニックネームの扱いについて混乱してきました…
「nickname」に入っているデータでソートするにはどうすれば良いのでしょうか?
-
ishitakaさん、ご返答ありがとうございます。
「’meta_key’ => ‘nickname’」を追加するとソート出来ました!
助かりました!今後の為に確認なのですが、
1.管理画面でニックネームを変更してもuser_nicenameやnicenameは変更されない
2.ニックネームとして説明されているが、nicknameとuser_nicenameやnicenameはそれぞれ別もの
3.nicknameはmeta_keyにも格納される
ということですか?nickname はプロフィール ページに表示されるニックネームですね。
user_nicename は URL に使用されているようです。デフォルトはユーザー名と同じようです。
nicename についてはよく分かりませんでした。ishitakaさん、ご説明ありがとうございます。
・user_nicenameはURLに使用されるからユーザー名のように初期値から変更出来ない。
・ニックネームを変更した場合はnicknameに格納される。
という感じですかね。同じニックネームという説明だけど用途が違うんですね。
ishitakaさん、今回はありがとうございました。
大変助かりました。取りあえず、問題は解決出来たので解決済みとさせていただきます。
@yuzunon さん
CodexのWP User Queryのorderbyに「’nicename’ / ‘user_nicename’ – ユーザーニックネームの順。」とあるので、nicknameではなく「’orderby’ => ‘nicename’」にしても変わらず…
ご指摘ありがとうございます。
原文(英語)は「Order by user nicename」なので、誤訳ですね。
https://codex.wordpress.org/Class_Reference/WP_User_Query#Order_.26_Orderby_Parameters
後ほど Codex日本語版 を修正します。gblsmさん、ご返信ありがとうございます。
Codexの方は誤訳だったのですね。
お知らせ頂きありがとうございます。ということは、nicename、user_nicenameは本来ニックネームを指すものでは無いということですね。
user_nicenameはニックネームだと説明しているサイトがいくつかあったので、user_nicenameはニックネームだと思っていました…もやもやしていた部分がスッキリしました。
ありがとうございました。余談ですが、管理画面の「ユーザーの編集」(プロフィール)で設定できる項目には、ニックネームの他にも meta_key で指定してソートできるものがあります(ソートに使いそうにないものが多いですが)。これは get_user_meta() で取得できる項目でもあります。
- ビジュアルリッチエディターを使用しない: rich_editing
- 管理画面の配色: admin_color
- コメントモデレーション用のキーボードショートカットを有効にする: comment_shortcuts
- サイトを見るときにツールバーを表示する: show_admin_bar_front
- 言語: locale
- 名: first_name
- 姓: last_name
- ニックネーム: nickname
- プロフィール情報: description
- トピック「ユーザーのnicknameとuser_nicenameについて」には新たに返信することはできません。