Иногда, например для сортировки, бывает полезно отображать страницы только 1 уровня, не выводя дочерние элементы. Особенно если страниц, или записей пользовательского типа несколько сотен. Вот код, который добавляет нужный фильтр в админку WordPress:
function in_child_filter() {
global $typenow;
$check = 'post_parent';
$checked = '';
if( $typenow == 'page' ){ // для каких типов постов отображать
if(isset( $_GET[$check])){
$checked = 'checked';
}
echo '<label><input name="post_parent" value="0" type="checkbox" '.$checked.'/>1 уровень </label>';
}
}
add_action( 'restrict_manage_posts', 'in_child_filter' );
function exclude_children_posts( $query ) {
if ( is_admin() && $query->is_main_query() && isset($_GET['post_parent']) && $_GET['post_parent'] == 0) {
$query->set( 'post_parent', 0 );
}
}
add_action( 'pre_get_posts', 'exclude_children_posts' );
Обновлено: 08.04.2018
Вам помогла эта статья? Оцените!
А в какой файл админки нужно вставить этот код?
В файл темы functions.php