从Wordpress Admin中的产品列表中删除特定的帖子状态

时间:2018-07-18 09:22:14

标签: wordpress woocommerce

在Woocommerce中,我尝试以“草稿”作为发布状态隐藏Admin中的所有产品。我所做的是:

function remove_draft_all_mine_products($views) {

  unset($views['draft']);
  unset($views['all']);
  unset($views['mine']);
  return $views;
}
add_filter('views_edit-product', 'remove_draft_all_mine_products');

我也删除了allmine,因为无论我是否删除draft,这些产品仍然可以在上述过滤器上看到。

现在,我的问题是,当我打开页面时,即使没有过滤器,默认视图仍然是all,因此draft产品是可见的。

我如何才能仅从管理员列表中有效删除草稿产品?

1 个答案:

答案 0 :(得分:1)

您的代码将仅对状态在产品表上方的所有产品隐藏draft,因此您必须使用该代码将其隐藏。

function remove_draft_all_mine_products($views) {

  unset($views['draft']);
  return $views;
}
add_filter('views_edit-product', 'remove_draft_all_mine_products');

并使用以下代码从表格中隐藏draft个帖子

function wpse_288586_hide_products($query) {
    // We have to check if we are in admin and check if current query is the main query and check if you are looking for product post type
    if(is_admin() && $query->is_main_query() && $query->get('post_type') == "product") {
        $query->set('post_status',array('publish', 'pending', 'future', 'private', 'inherit', 'trash'));
    }
}
add_action('pre_get_posts', 'wpse_288586_hide_products');