因此,在评论讨论之后sufficient answer on another StackEx question 是这样的:
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\');
}
}
唯一对我们非常重要的部分是post-id的数组。
问题是,给定安装上的一个post可以具有相同的slug,但通常具有不同的ID。
所以,若我们创建一个要排除后段塞的数组,会怎么样:
$excludeds = array( \'login\', \'logout\', \'lostpassword\', \'register\', \'resetpass\' );
foreach ( $excludeds as $excluded ) {
$excluded_IDs[] = get_page_by_path( $excluded )->ID;
}
这应该在不同的安装中起作用,假设相同的文章/页面:
add_filter( \'parse_query\', \'exclude_pages_from_admin_by_slug\' );
function exclude_pages_from_admin_by_slug( $query ) {
global $pagenow, $post_type;
//set the array of to be excluded slugs
$excludeds = array( \'login\', \'logout\', \'lostpassword\', \'register\', \'resetpass\' );
//get array of IDs from array of slugs
foreach ( $excludeds as $excluded ) {
$excluded_IDs[] = get_page_by_path( $excluded )->ID;
}
if ( is_admin() && $pagenow==\'edit.php\' && $post_type ==\'page\' ) {
//exclude those IDs from query
$query->query_vars[\'post__not_in\'] = $excluded_IDs;
}
}
无法从测试中保证代码的完整性,显然这是为了回答一个不同的问题。由于我们没有可供选择的代码,这里唯一感兴趣的是一个模型,用于派生一个要排除的ID数组并使用它。