WordPressでWebページを作成しているときに、
投稿をある決まった並び順で並べたい時があったのでメモ。
結論
カスタムフィールドを使用する。
カスタムフィールド(例:sort_number)を作成して順番を半角数字で登録する。
取得するときは、
<?php
$args = new Array(
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_key' => 'sort_number');
get_posts($args);
?>
で並び替えられる。
※orderbyの指定は、_numを付けないと数字的に並び変わってくれないで注意
slugに番号を持たせて、コアソースのorder処理に
slugでの並び替えを追記する手もあるらしいけど、
担保とるコストと、WordPressのアップデート時の対応コストが定期的にかかってしまうため
商用Webページには向かない対応だと考える。
参考
テンプレートタグ/get posts - WordPress Codex 日本語版
Karappo web design room » wordpressでスラッグ順に投稿を表示する方法