php 从常规管理列表中隐藏某些页面(分配了系统页面类别的页面)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 从常规管理列表中隐藏某些页面(分配了系统页面类别的页面)相关的知识,希望对你有一定的参考价值。

// Hide certain pages (ones with system-page category assigned) from the general admin listing, but keep them accessible when visiting category listing in admin
function stumppi_hide_system_pages($query) {
  if (
    is_admin() && 
    !empty( $_GET['post_type'] ) && 
    $_GET['post_type'] == 'page' && 
    !$_GET['category_name'] && 
    $query->query['post_type'] == 'page'
  ) {
    $query->set( 'tax_query', array(array(
      'taxonomy' => 'category',
      'field' => 'slug',
      'terms' => array('system-pages'),
      'operator' => 'NOT IN'
    )));
   }
}

add_action( 'pre_get_posts', 'stumppi_hide_system_pages' );


// Add system pages to quick links in the admin listing
function stumppi_add_system_pages_to_quick_links($views) {

  if ((is_admin()) && ($_GET['post_type'] == 'page')) {

    global $wp_query;
    $category_slug = 'system-pages';

    $system_pages_query = array(
      'post_type'     => 'page',
      'category_name' => $category_slug
    );

    $cat_object = get_category_by_slug($category_slug);

    $class = ($wp_query->query_vars['category_name'] == $category_slug) ? ' class="current"' : '';
    $views['system'] = sprintf(__('<a href="%s"'. $class .'>'. $cat_object->name .'</a>', 'theme_domain' ), admin_url('edit.php?post_type=page&category_name=' . $category_slug));

    return $views;

  }
}

add_filter('views_edit-page', 'stumppi_add_system_pages_to_quick_links');

以上是关于php 从常规管理列表中隐藏某些页面(分配了系统页面类别的页面)的主要内容,如果未能解决你的问题,请参考以下文章

请求分页管理方式及页面分配策略

请求分页管理方式及页面分配策略

php 在WP管理员中隐藏某些页面模板

内存管理-第二节4:页面分配策略

在php中反映列表而不刷新页面

PHP新闻系统开发流程