在没有插件的情况下在管理员端隐藏页面?

时间:2011-03-30 作者:Osu

我正在创建一系列嵌入了iFrame的页面,但在Wordpress中实现这一点的唯一方法(即使用模板系统)似乎是在管理端创建页面,然后为每个页面创建单独的模板。

有没有可能在没有插件的情况下对管理员隐藏这些页面?我认为当客户无法编辑其中的任何内容时,他们没有必要查看这些页面。

谢谢

osu

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

您可以使用parse_query 使用post\\u not\\u in属性筛选挂钩以排除页面

add_filter( \'parse_query\', \'exclude_pages_from_admin\' );
function exclude_pages_from_admin($query) {
    global $pagenow,$post_type;
    if (is_admin() && $pagenow==\'edit.php\' && $post_type ==\'page\') {
        $query->query_vars[\'post__not_in\'] = array(\'21\',\'22\',\'23\');
    }
}
这将排除ID为21、22、23的页面

为了确保这些页面不会使用wp\\u list\\u pages包含在前端,您可以使用wp\\u list\\u pages\\u excludes filter hook:

 add_filter(\'wp_list_pages_excludes\', \'exclude_from_wp_list_pages\');
 function exclude_from_wp_list_pages($exclude_array){
    $exclude_array = $exclude_array + array(\'21\',\'22\',\'23\');
    return $exclude_array;
 }

结束