web-dev-qa-db-ja.com

カスタム投稿のステータスが[カスタム投稿タイプALL]ビューに表示されない

私たちが発送する商品を入力できるように、WPサイト用の簡単なプラグインを作成しました。

これを行うために、私は 'order_packing'と呼ばれる新しい投稿タイプを作成し、その2つの新しい投稿ステータス内に 'In Packing'、 'Sent'を作成しました。

私が持っている問題はリストが正しくALL(2)合計内のパッキングリストを表示するということです - しかし、パッキングリストをリストしません。 [送信済み]ステータスをクリックすると、両方ともリストに表示されます。だから私の問題はデータがそこにあることですが、それらはALLタブの下に表示されていません。

これがPost Typeを作成するコードです。これはすべて完璧に動作します

enter code here    register_post_type( 'order_packing',
    array(
        'labels'              => array(
        'name'                  => __( 'Order Packing', 'tgplugin' ),
        'singular_name'         => _x( 'Order Packing', 'order_packing post type singular name', 'tgplugin' ),
        'add_new'               => __( 'Add Packing List', 'tgplugin' ),
        'add_new_item'          => __( 'Add Packing List', 'tgplugin' ),
        'edit'                  => __( 'Edit', 'tgplugin' ),
        'edit_item'             => __( 'Edit Packing List', 'tgplugin' ),
        'new_item'              => __( 'New Packing List', 'tgplugin' ),
        'view'                  => __( 'View Packing List', 'tgplugin' ),
        'view_item'             => __( 'View Packing List', 'tgplugin' ),
        'search_items'          => __( 'Search Packing Lists', 'tgplugin' ),
        'not_found'             => __( 'No Packing Lists found', 'tgplugin' ),
        'not_found_in_trash'    => __( 'No Packing Lists found in trash', 'tgplugin' ),
        'parent'                => __( 'Parent Packing List', 'tgplugin' ),
        'menu_name'             => _x( 'Stock Packing List', 'Admin menu name', 'tgplugin' ),
        'filter_items_list'     => __( 'Filter Packing Lists', 'tgplugin' ),
        'items_list_navigation' => __( 'Packing List navigation', 'tgplugin' ),
        'items_list'            => __( 'Packing Lists', 'tgplugin' ),
    ),
        'description'         => __( 'This is where Packing Lists are stored.', 'tgplugin' ),
        'public'              => false,
        'show_ui'             => true,
        'capability_type'     => 'packing_list',
        'map_meta_cap'        => true,
        'publicly_queryable'  => false,
        'exclude_from_search' => true,
        'show_in_menu'        => true,
        'hierarchical'        => false,
        'show_in_nav_menus'   => false,
        'menu_position'       => 100,
        'rewrite'             => false,
        'query_var'           => false,
        'supports'            => array( 'title', 'comments', 'custom-fields' ),
        'has_archive'         => false,
    )
);

そのカスタム投稿タイプのカスタムステータスは次のとおりです。

 register_post_status( 'inpacking', array(
    'label'                     => _x( 'In Packing', 'Order packing' ),
    'public'                    => false,
    'exclude_from_search'       => false,
    'show_in_admin_all_list'    => true,
    'show_in_admin_status_list' => true,
    'label_count'               => _n_noop( 'In Packing <span class="count">(%s)</span>', 'In Packing <span class="count">(%s)</span>' ),
 ) );

 register_post_status( 'sent', array(
    'label'                     => _x( 'Sent', 'Order packing' ),
    'public'                    => false,
    'exclude_from_search'       => false,
    'show_in_admin_all_list'    => true,
    'show_in_admin_status_list' => true,
    'label_count'               => _n_noop( 'Sent <span class="count">(%s)</span>', 'Sent <span class="count">(%s)</span>' ),
 ) );

最後に、問題を示す2つの画像があります。

All showing correct total but no posts Posts shown correctly when Sent is clicked 

私は頭をかいていて、検索して検索しました。この記事は見つかりましたが、それに対する答えはありません。

https://stackoverflow.com/questions/29434046/wordpress-posts-with-custom-status-need-to-show-in-all-view

誰かが私の正気を救うのを手伝ってくれることを願っています!

乾杯コリン

2

public引数をtrueに設定する必要があります。このようにして、 'inpacking'または 'sent' post_statusの投稿も全部表示されます。

だからあなたのコードはこのようになるはずです:

register_post_status( 'inpacking', array(
    'label'                     => _x( 'In Packing', 'Order packing' ),
    'public'                    => true,
    'exclude_from_search'       => false,
    'show_in_admin_all_list'    => true,
    'show_in_admin_status_list' => true,
    'label_count'               => _n_noop( 'In Packing <span class="count">(%s)</span>', 'In Packing <span class="count">(%s)</span>' ),
 ) );

register_post_status( 'sent', array(
    'label'                     => _x( 'Sent', 'Order packing' ),
    'public'                    => true,
    'exclude_from_search'       => false,
    'show_in_admin_all_list'    => true,
    'show_in_admin_status_list' => true,
    'label_count'               => _n_noop( 'Sent <span class="count">(%s)</span>', 'Sent <span class="count">(%s)</span>' ),
) );
1
pck