Intuitive Custom Post Order

説明

投稿、ページ、カスタム投稿タイプ、タクソノミー、サイトを、シンプルなドラッグ&ドロップインターフェースで直感的に再配置できます。

Intuitive Custom Post Order は、WordPress 管理画面でシンプルなドラッグ & ドロップ操作により、アイテムの並べ替えを可能にします。
投稿、ページ、カスタム投稿タイプ、タクソノミー、および (マルチサイト環境では) サイトを並べ替えることができます。

Settings Intuitive CPO に移動し、並べ替え可能にしたいコンテンツタイプを選択してください。
有効化すると、リストテーブル内の項目をドラッグ & ドロップするだけで — 追加の設定は不要です。

テーマやプラグインでカスタムクエリーを作成する場合、ドラッグ&ドロップ順序を反映させるには orderby=menu_orderorder=ASC を設定してください。
デフォルトの WordPress 順序 (日付順) を維持するには、明示的に orderby=dateorder=DESC を設定してください。

ソースコードと開発は GitHub で利用可能です。

スクリーンショット

  • 設定画面 (ソート可能な投稿タイプとタクソノミーを選択)
  • ドラッグ & ドロップで、投稿の並べ替え。
  • タクソノミー・タームの並べ替え。
  • (マルチサイト用)「ネットワーク」設定。
  • (マルチサイト用)「ネットワーク管理」で、サイトの並べ替え。

インストール

  1. /wp-content/plugins/ ディレクトリに ‘intuitive-custom-post-order’ フォルダーをアップロードします。
  2. 「プラグイン」メニューからプラグインを有効化します。
  3. Settings Intuitive CPO に移動し、並べ替え可能にしたい投稿タイプまたはタクソノミーを指定してください。
  4. リストテーブル内の項目をドラッグ & ドロップするだけで、順番を変更できます。

FAQ

並べ替え機能を動作させるために、私のテーマを変更する必要がありますか ?

いいえ。有効化後、管理画面UIではアイテムを並べ替え可能となり、有効化された投稿タイプのフロントエンドクエリーは自動的に menu_order ASC 順に並べ替えられます — 明示的に独自の orderby を渡さない限り。

私のカスタムクエリーでドラッグ & ドロップ順を尊重させるには、どうすればよいですか ?

あなたのクエリー引数で orderby=menu_orderorder=ASC を指定してください。

WP_Query:

<?php
new WP_Query( array(
    'post_type' => 'your_cpt',
    'orderby'   => 'menu_order',
    'order'     => 'ASC',
) );
?>

get_posts():

<?php
get_posts( array(
    'post_type' => 'your_cpt',
    'orderby'   => 'menu_order',
    'order'     => 'ASC',
) );
?>

特定のクエリーに対して、日付順 (新しい順) で表示したいです。どうすればいいですか ?

明示的に設定します:

<?php
new WP_Query( array(
    'orderby' => 'date',
    'order'   => 'DESC',
) );
?>

プラグインは、get_posts() に対して、小さな切り替えをサポートします:

<?php
get_posts( array(
    'orderby' => 'default_date',
    'order'   => 'DESC',
) );
?>

関数 query_posts() は、サポートされていますか ?

メインクエリーを脆弱な方法で変更するため、WordPress コアでは query_posts() の使用は推奨されません。
代わりに pre_get_posts (推奨) または WP_Query を使用してください。

メインブログページで pre_get_posts を用いて日付順を強制する例:

<?php
add_action( 'pre_get_posts', function( $q ) {
    if ( is_admin() || ! $q->is_main_query() ) {
        return;
    }
    if ( is_home() ) {
        $q->set( 'orderby', 'date' );
        $q->set( 'order', 'DESC' );
    }
} );
?>

これはタクソノミーとタームで動作しますか ?

はい。有効化されたタクソノミーでは、タームの順序を変更でき、フロントエンドにもその順序で表示されます。
カスタムタームクエリーを作成する際は、意図的に変更しない限り、順序をオーバーライドしないように注意してください。

マルチサイト: 「ネットワーク管理」で、サイトの順序を変更できますか?

はい。「ネットワーク」設定で有効化されている場合、サイトは menu_order 昇順 で並べ替えられます。「ネットワーク管理」画面でのドラッグ & ドロップ操作により、順序が更新されます。

投稿を、2ページ目から1ページ目の先頭に移動するには、どうすればよいですか ?

リストテーブルの右上にある「画面オプション」タブに移動し、「1ページあたりの項目数」を増やします。
こうすることで、並べ替えたいすべての項目が同じページに表示され、目的の位置にドラッグできるようになります。

評価

2024年6月24日
これまで長く使ってきたが、WordPress 6.5.4では動かない。感謝して別れを告げるべきか…。
139件のレビューをすべて表示

貢献者と開発者

Intuitive Custom Post Order はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Intuitive Custom Post Order” は20ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Intuitive Custom Post Order” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

3.2.0

  • セキュリティ強化: すべての AJAX ハンドラーにおいて、CSRF/ノンス、権限チェックを統合し、JSON レスポンスを標準化しました。
  • ネットワーク管理: マルチサイト設定用に、manage_network_options 権限および *_site_option API に移行しました。
  • リダイレクト処理の改善: リダイレクト後に exit; を記述し、admin_url() / network_admin_url() を使用してください。
  • 入力のサニタイズ: 厳密な比較演算子を使用して、$_GET$_POST および $_SERVER の値の処理を強化しました。
  • コードリファクタリング: カスタムバージョンの解析を get_file_data() に置き換え、pre_get_posts の戻り値をクリーンアップしました。
  • JavaScript: ソート機能の動作を改善し、成功/失敗のフィードバックを明確に表示できるようにするとともに、保存中は UI を非表示にし、wp.a11y.speak によるアクセシビリティ通知を実装しました。
  • UI/UX: ドラッグ & ドロップによる並べ替え操作中に、保存インジケーター (半透明の行 + 中央のスピナー) を追加しました。
  • WordPress との互換性: WP v6.4以降で動作確認済みであり、WordPress コーディング標準 (WPCS) に準拠しています。

3.1.5.1

  • バグの修正

3.1.4.1

  • ‘hicpo_add_capabilities’ を修正しました: ロールが存在する場合にのみ、権限を追加します。

3.1.4

  • セキュリティ上の問題を修正しました (@timohubois さん、ありがとうございます)。
    CSRF を介した、任意のメニュー順序の更新。
    Subscriber+ による、任意のメニュー順序の更新。

3.1.3

  • 重複した注文を修復する機能を追加。

3.1.2.1

  • このプラグインがテストされた WordPress のバージョンを更新。

3.1.2

  • ドラッグ & ドロップのソート中にレイアウトが崩壊するという問題を解決。

3.1.1

  • 廃止された関数 ‘secreen_icon()’ を削除。

3.1.0

  • サイトをサポートする。
  • アクティベーションの改善。

3.0.8

  • ‘get_posts()’ の場合でも、’order’ または ‘orderby’ パラメータを使用するカスタムクエリが推奨されます。
    注意: ‘get_posts()’ を使用してデフォルトの順序に再上書きする場合にのみ (orderby=date, order=DESC)、独自のカスタムパラメータ ‘orderby=default_date’ を使用する必要があります。

3.0.7

  • このプラグインは上記のtranslate.wordpress.org翻訳システムにインポートされます。完全に翻訳されたローカルの言語パックも、このプラグインで有効になります(100%)。

3.0.6

  • Support ‘next_post_link()’ and ‘previous_post_link(), etc.
    • パラメータ ($in_same_term、$excluded_terms、$taxonomy) は、問題なく動作します。

3.0.5

  • Fixed bug
    • ページの menu_order の初期化。(orderby=menu_order、post_title、order=asc)

3.0.4

  • ‘order’ または ‘orderby’ パラメーターを使用するカスタム クエリが推奨されます。
    クエリのパラメータを優先するには、’WP_Query()’ または ‘query_posts()’ を使用する必要があります。
    除外された ‘get_posts()’。
  • Fixed bug
    • ソート可能な JavaScript を有効にするか否かの決定。
    • ページの menu_order を初期化。( orderby=post_title, order=asc )

3.0.3

  • アクティベーションのパフォーマンス向上。
  • カスタムタクソノミーの初期化を追加します。
  • 更新方法のバグを修正。
  • 注文を上書きし、注文が改善されました。(@newashと@anriettec のおかげ)

3.0.1 & 3.0.2

  • バグの修正

3.0.0

  • カスタムタクソノミー順番をサポート。
    ( wp_list_categories, get_categories, the_terms, the_tags, get_terms, get_the_terms, get_the_term_list, the_category, wp_dropdown_categories, the_taxonomies)
  • 管理 UI で並べ替えを行います。
    並べ替え中に、ドラッグ & ドロップの並べ替え可能な Javascript は実行されません。
  • 非公開オブジェクトをサポート (show_ui = true、show_in_menu = true)
  • 日本語翻訳を追加。

2.1.0

  • バグ修正: ‘order’ または ‘orderby’ パラメータを使用するカスタムクエリが優先されます。
  • 引数の指定方法に依存しません ( パラメータ )。
    ( $args = ‘orderby=&order=’ または $args = array( ‘orderby’ => ”, ‘order’ => ” ) )
  • 2.0.7, 2.0.8, 2.0.9に存在した不具合が改善されました!
  • 2.0.6から2.1.0に更新してください。

2.0.9

  • 管理者のパフォーマンスの向上。
    致命的なパフォーマンスの問題が大幅に改善されました。
  • バグ修正: アタッチメントオブジェクトは壊れていません。
  • バグ修正: マルチサイトの警告表示が解決されました。
  • バグを修正: まず項目を有効にする場合、項目の ‘メニュー順序’ が壊れにくい。
  • ‘order’ または ‘orderby’ パラメータを使用するカスタムクエリが優先されます。

2.0.8

  • 管理者のパフォーマンスの向上。
    リフレッシュ方法 (すべてのメニュー順序を再構成する) は、アクティブなオブジェクトのリストページでのみ実行されます。

2.0.7

  • バグ修正: WordPress 3.8用
  • スウェーデン語の翻訳を追加する(by Thomas)

2.0.6

  • ver.2.0.5を修正。

2.0.5

  • ‘next_post_link()’ と ‘previous_post_link()’ をサポート (シングルからシングル)。

2.0.4

  • バグの修正

2.0.3

  • 直感的なCPO設定ページが[設定]メニューに移動しました。

2.0.2

  • バグの修正

2.0.0

  • ソートする対象を選択します。 (投稿、固定ページ、カスタム投稿)
  • 固定ページと階層型カスタム投稿をサポート。
  • ソート可能なアイテムのステータスは「公開」だけでなく、他のすべてのステータス(「保留」、「下書き」、「非公開」、「予約投稿」)です。
  • ページングでは、それはすべて正常にアクティブ化されています。だから、’screen-per-page’ はユーザーのようなものです。
  • カテゴリ (カテゴリ、タグ、タクソノミー) を並べ替えたリストでは、すべて標準で有効になります。
  • 子投稿と子固定ページをサポートします。アイテムを並べ替えると、そのアイテム間の親アイテムの関係が維持されます。

1.2.1

  • バグを修正しました

1.2.0

  • 視覚的にクリアされた並べ替え可能な UI。(カーソルの変更など)。
  • ソート可能なアイテムは垂直方向にのみドラッグできます。
  • クイック編集メニューが有効になりました。
  • 項目をドラッグするたびに、セルの幅が折りたたまれるわけではありません。

1.1.1

  • バグの修正

1.1.0

  • 1画面あたりのページ数は自動的に ‘999’に設定され、未設定よるトラブルを防ぎます。
  • ‘get_posts’ や ‘query_posts’ などで ‘order’ または ‘orderby’ パラメータを使用するカスタムクエリを除外します。

1.0.0

最初のリリース