
WordPressユーザーを任意の順番でソートして出力する
WordPressユーザー絡みの記事が続きますが、タイトルの通りWordPressユーザーのソートをカスタマイズする方法です。と言っても自前でSQLを書いたり、テーブルのカラムを増やしたりするわけではなく、WordPressの関数で操作する程度の方法になります。
まず、要件としてはWordPressユーザーを任意の順番にソートして一覧表示させるというもので、管理者ユーザー側でWordPressの管理画面から編集ができるものとします。
ユーザーの一覧情報については、get_users()で取得します。get_users()では、ユーザーに関するいろんな情報を取得できます。この関数では配列としてデータを取得しますので、出力する際にはforeach文などでループさせる必要があります。以下サンプルコードを見ていきます。
本来の使い方とは少し異なるので賛否が分かれるところですが、、こういった要件を満たすプラグインなども見当たらなかったのでどうしても必要となれば使えるかと思います。ただし、本来の使い方ができなくなる恐れもあるので運用方法と検討した方が良さそうですね。。
<?php
$authors = get_users(
array(
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_key' => 'description'
)
);
?>
<ul>
<?php foreach ( $authors as $user ): ?>
<li><?php echo esc_html ( $user->display_name ) ?>
</li>
<?php endforeach; ?>
</ul>
// 出力結果
<ul>
<li>ユーザー1(プロフィールに1番の順番指定を示すテキストが入力されている)
</li>
<li>ユーザー2(プロフィールに2番の順番指定を示すテキストが入力されている)
</li>
<li>ユーザー3(プロフィールに3番の順番指定を示すテキストが入力されている)
</li>
</ul>
上記コードでは、ユーザー取得のソート条件で、
1.昇順であること
2.メタ情報を基準にソートする
3.対象となるメタ情報はユーザープロフィール文に指定
という内容にしています。つまりユーザープロフィール文の先頭に並び順の数字を入れることで、プロフィール文に入れた数値の順にユーザーがソートされ出力されるようになります。ちなみにデフォルトではログインIDベースで並ぶことになります。
ここではユーザープロフィール文(discription)のメタ情報を使っていますが、他にもニックネーム(nickname)に数値を入力してソート用の順番指定に使うことも可能です。これらの入力項目はユーザー編集画面にあります。
本来の使い方とは少し異なるので賛否が分かれるところですが、、こういった要件を満たすプラグインなども見当たらなかったのでどうしても必要となれば使えるかと思います。ただし、本来の使い方ができなくなる恐れもあるので運用方法と検討した方が良さそうですね。。
categories
- WordPress(61)
- JavaScript(49)
- Vue.js(48)
- CSS(46)
- jQuery(34)
- Nuxt.js(22)
- Sass(21)
- Gulp(17)
- webpack(16)
- PHP(14)
- HTML(14)
- GSAP(11)
- React(10)
- Vite(9)
- Pug(9)
- Laravel(8)
- Cordova(8)
- Linux(7)
- Next.js(6)
- Apache(5)
- Shopify(4)
- REST API(4)
- Node.js(4)
- Smarty(3)
- Git(3)
- JSON(3)
- その他プログラミング(3)
- Google Apps API(3)
- Bootstrap(3)
- 環境構築・システム(3)
- TypeScript(2)
- EJS(2)
- RMS(2)
- Docker(2)
- Instagram API(2)
- Excel VBA(2)
- SVG(1)
- Dart(1)
- ECカートASP(1)
- Markdown(1)
- AMP(1)
- Nginx(1)
- XML(1)
- shellscript(1)
- Ruby(1)
- MySQL(1)