我已经为我们的WP网站创建了一个简单的插件,允许我们进入我们的产品,我们发送。
为此,我创建了一个新的Post类型,名为'order_packing‘,在这两个新的Post状态中:'In Packing','Sent’。
我遇到的问题是,这份清单正确地显示了所有(2)项中的装箱单,但没有列出装箱单。如果单击“已发送”状态,则列表中显示了这两种状态。因此,我的问题是数据在那里,但它们没有显示在ALL选项卡下。
下面是创建Post类型的代码,这一切都工作得很完美
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,
)
);以下是自定义Post类型的自定义状态。
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>' ),
) );最后,这里有两个图片显示了这个问题。


我在抓我的头,搜索了一下,我确实找到了这篇文章,但没有答案。
我希望有人能帮我拯救我的理智!
欢呼科林
发布于 2017-04-19 10:32:11
您应该将public参数设置为true。这样,带有“信息包装”或“发送”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>' ),
) );发布于 2022-03-28 00:22:47
旧的问题/答案,但对这个问题的澄清应加以处理。
首先,法典将show_in_admin_all_list和show_in_admin_status_list的默认值标识为与internal和exclude_from_search相反的默认值,与internal相同。文档指示默认设置为internal=FALSE,因此不必显式设置它或与其相关的任何内容。
第二,尽管@pck在设置public=TRUE将解决问题方面是正确的,但是这个答案有一个问题。设置public=TRUE不仅可以访问前端具有此状态的帖子(无论是在显示中还是在查询中),许可问题也可能出现。在许多情况下,这样的结果是不可接受的,例如公司内部的运输程序不能向公众或缺乏适当凭证的用户提供。(我假设这是您的情况,因为您在注册public=FALSE post类型时设置了order_packing和capability_type。)@pck所回避的是,需要设置public、protected或private参数,以便在"All“视图中显示自定义状态的帖子。这是因为代码 of WP_Query->get_posts()将只返回具有使用这些参数设置之一注册的状态的帖子。
考虑到这两点,针对您的具体情况,一个更合适的解决方案是:
register_post_status( 'inpacking', array(
'label' => _x( 'In Packing', 'Order packing' ),
'private' => 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' ),
'private' => true,
'label_count' => _n_noop( 'Sent <span class="count">(%s)</span>', 'Sent <span class="count">(%s)</span>' ),
) );https://wordpress.stackexchange.com/questions/256117
复制相似问题