18
JULY
ウェブTUESDAY 2017 / 7 / 18
投稿やカテゴリーの順序を任意に変更できるWordPressプラグイン – Intuitive Custom Post Order
Text by Hiroyuki Matsumoto
投稿の順序を変更する際、通常は投稿日順で並べ替えられてしまうため、1件ずつ投稿をちまちまと日付変更する必要があります。メンドクサイ
このプラグインは投稿やカテゴリーの表示順序を自由に変更することが可能です。
1.プラグインをインストール
2.プラグインを有効化
3.管理画面のメニューの「設定」→「並べ替え設定」を開く
4.並べ替え機能を有効にする項目にチェックを付けて、更新ボタン
5.あとはチェックした投稿の一覧画面にて、マウスドラッグで簡単に並べ替えが可能です。
動作の仕組み
仕組みとしては、投稿やカテゴリーのカスタムフィールドに menu_order という項目を追加しており、そちらに並べ替えの順序を数値で保存しているようです。
アイテム表示時にはフックを使って並べ替え順を 【menu_order の 昇順で並べ替えなさい】 と自動的に書き換えています。
もしも逆の降順での表示にしたいようでしたら、pre_get_posts にフックして並び順の指定を書き換えてしまいましょう。例えばカスタム投稿タイプのスラッグ名が otsumami の並び順を逆順にしたい場合は下記のようなコードを function.php に記述します。
function myRewriteOrderFunc( $wp_query ) { if( is_post_type_archive() && is_main_query() )) { $post_type = $wp_query->query_vars['post_type']; if($post_type==='otsumami'){ $wp_query->query_vars['orderby'] = 'menu_order'; $wp_query->query_vars['order'] = 'DESC'; } } } add_action( 'pre_get_posts', 'myRewriteOrderFunc' );
並べ替えが効かない?
なぜか並べ替えが効かない場合があるようです。その際は、ドラッグ&ドロップで並べ替えができているように見えるのですが、画面をリロードすると並べ替え前の状態のママという。。。
このような場合、表示を「すべて」ではなく「公開済み」にしてから並べ替えをするとうまく適用される場合がありますので試してみましょう。
TEXT by
松本 博之(まつもとひろゆき)
1978年、鳥取県米子市生まれ。
株式会社マジックワード WEBシステムの開発・運用を担当。
WordPressの実績多数。表面的な使用方法を把握するだけでなく、WordPressのソースコードを読み解いて対応できます。
国家資格の応用情報処理技術者をなんとなくとりました。