カスタム投稿タイプで、ページに利用可能な "order"フィールドを含める方法はありますか?
"order"フィールドに重複する値を防ぐための組み込みロジックはありますか?
アイデアは、カスタム投稿タイプをユーザー指定の順序でソートし、次に文字列ベースのカスタムフィールドでアルファベット順にソートできるようにすることです。
Register_post_type関数を使用してカスタム投稿タイプを宣言するときは、次の例のように、サポートフィールドに 'page-attributes'を追加する必要があります。
register_post_type('myposttype', array(
'supports' => array('title', 'editor', 'page-attributes'),
'hierarchical' => false
));
Register_post_typeフィールドの詳細については、サポートされている他のメタボックスを「supports」フィールドに追加する必要があります。 http://codex.wordpress.org/Function_Reference/register_post_type を参照してください。
また、同じ順序の2つを防ぐ方法が組み込まれていないことを私の知る限りでは、これは階層に基づいてサブ順序を作成できるためです(したがって、子ページの1つのグループは別の順序と異なる順序を持つことができます)。
@ Dave-Huntの応答に加えて、次のようなカスタムオーダーを定義するためのフィルタ(この場合はタイトルのアルファベット順)を追加することもできます。 (/おかげで Mark Leongさんのブログ投稿へのコード。 )フロントエンドでもorder_byをカスタマイズしたい場合はis_admin()
チェックを外してください。
関数set_custom_post_types_admin_order($ wp_query){ if(is_admin()){ //クエリから投稿の種類を取得する $ post_type = $ wp_query-> query ['post_type']; if($ post_type == 'POST_TYPE'){ // 'orderby'の値任意の列名 $ wp_query-> set( 'orderby'、 'title'); // 'order'の値はASCまたはDESC にできます。 $ wp_query-> set( 'order'、 'ASC'); } } } add_action( 'pre_get_posts'、 'set_custom_post_types_admin_order'); [] ]
更新
保存前の検証については、次の回答を参照してください。 https://wordpress.stackexchange.com/a/40095/4645 ここで、オプションについて説明します。 WordPressには保存前のフックがないため、基本的にはカスタムjQueryになります。
また、(将来の参考のためにここに私の以前のコメントを複製する)、ここにadminの 'menu order'フィールドを公開する方法があるので、ページの場合と同様にユーザー編集可能です: カスタム投稿タイプへの 'menu order'列の追加管理画面