Как скрыть записи или страницы из админки WordPress

Иногда бывает полезно скрывать «пустые» функциональные страницы на основе шаблона от глаз клиентов, например страница корзины в интернет-магазине.

Реализовать это довольно легко — вставкой нескольких строк кода в functions.php текущей темы.

Вот общее решение, работает для записей, страниц и любых произвольных типов постов, не забудьте указать через запятую ID постовстраниц, которые нужно скрыть.

function true_hide_posts_from_admin( $query ) {
    global $pagenow;
    if( is_admin() && 'edit.php' == $pagenow ){
        $query->set( 'post__not_in', array(9,54) ); 
        // через запятую указываем ID постов или страниц, которые хотим скрыть
    }
    return $query;
}
 
add_action( 'pre_get_posts' ,'true_hide_posts_from_admin' );

Если хотите, чтобы функция применялась например только для страниц, модифицируем её следующим образом:

function true_hide_pages_from_admin( $query ) {
    global $pagenow;
    if( is_admin() && 'edit.php' == $pagenow && 'page' == get_query_var('post_type') ){
        // в качестве 'page' в условии можно указать любой произвольный тип постов
        $query->set( 'post__not_in', array(300,271) ); 
        // через запятую прописываем ID страниц, которые хотим скрыть
    }
    return $query;
}
 
add_action( 'pre_get_posts' ,'true_hide_pages_from_admin' );

Доступ к скрытым постам по-прежнему можно получить по прямым ссылкам.

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: