カスタム投稿タイプ-注文フィールド


13

カスタム投稿タイプに、ページで利用可能な「注文」フィールドを含める方法はありますか?

「順序」フィールドの重複値を防ぐ組み込みロジックはありますか?

このアイデアは、ユーザーが指定した順序でカスタム投稿タイプをソートし、次に文字列ベースのカスタムフィールドでアルファベット順にソートできるようにすることです。


回答:


24

register_post_type関数を使用してカスタム投稿タイプを宣言するときは、次の例のように、サポートフィールドに「ページ属性」を追加する必要があります。

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つのグループは別のものと異なる順序を持つことができます)


を使用page-attributesすると、orderフィールドとフィールドの両方が表示されparentます。どうすればparentフィールドを取り除くことができますか?
強制フロー

気にしないで。hierarchicalfalseに設定すると削除されます。
強制フロー

私の悪い、あなたもページの親を望んでいないことに気づかなかった。回答を更新して除外します。
デイブ・ハント

こんにちは。このコードはありますが、何も表示されません: `` `//サービスのカスタム投稿タイプadd_action( 'init'、 'create_post_type'); function create_post_type(){$ supports_args = array( 'title'、 'editor'、 'page-attributes'); register_post_type( 'service'、array( 'labels' => array( 'name' => __( 'Services')、 'singular_name' => __( 'Service')、 'supports' => $ supports_args、 'hierarchical' => false)、 'public' => true、 'has_archive' => true、// 'menu_position' => 2)); } ``
Sylar

@Sylar私はこれが非常に遅いことを理解していますが、あなたの「サポート」=> $ supports_args、「階層」=> falseが配列の間違った部分にあるように見えます。あなたはそれはあなたの例では、ラベル列の下にネストされている、それは公共の'=>真のと同じレベルで、ベース・アレイであるべき
デイブ・ハント

4

@ Dave-Huntの応答に加えて、次のようなフィルターを追加して、カスタムオーダーを定義することもできます。この場合、タイトルのアルファベット順です。(コードはMark Leongのブログ投稿に感謝します。is_admin()フロントエンドでもカスタムorder_byを使用する場合は、チェックを削除します。

関数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になります。

また、(今後の参考のために以前のコメントをここに複製します)、管理者の「メニュー順序」フィールドを公開する方法は次のとおりです。したがって、ページの場合と同様にユーザー編集可能です:カスタム投稿タイプ管理画面に「メニュー順序」列を追加する

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.