• カミナリツイッターカミナリtwitter
  • カミナリフェイスブックカミナリfacebook
  • カミナリインスタグラムカミナリinstagram

山陰の情報を発信するカミナリ

ナビ

18

JULY

ウェブTUESDAY 2017 / 7 / 18

投稿やカテゴリーの順序を任意に変更できるWordPressプラグイン – Intuitive Custom Post Order

投稿の順序を変更する際、通常は投稿日順で並べ替えられてしまうため、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システムの開発・運用を担当。

この人が書いた他の記事を読む