Intereting Posts
Как заказать вывод get_term_children по алфавиту CMB2 – array_search или in_array from repeat_group и значения, разделенные запятыми Внештатная загрузка CSV в базу данных WP ссылка на библиотеку JS с использованием неработающих wp_enqueue_scripts Перенаправить 404 страницы для последней страницы разбиения на страницы категорий и тегов? Сохранение пользовательских опций WordPress? Shortcode для вызова на wp_footer Как получить изображения, прикрепленные к сообщению через медиабиблиотеку? При перемещении сайта WP, почему wp-admin перенаправляется на старый сайт? Поделитесь записью со всеми авторами, но не публичными? Как оптимизировать пользовательскую страницу типа сообщений с 25 000 сообщений? Добавить пользовательскую таксономию под названием категории Добавьте «выпадающую стрелку» для пунктов меню с подменю Метабокс одной позиции влияет на другие Какая лучшая структура ссылок для SEO?

позволяют пользователям редактировать только одну страницу (с ее дочерними страницами) без плагина

Я хотел бы установить группу пользователей (называемую «xxx»), чтобы разрешить редактировать только одну страницу с идентификатором 17 с ее подстраницами. У меня есть код для функции functions.php, но работающая как «xxx» может видеть и редактировать все страницы, кроме 17. Как мне это изменить? ('xxx' использует cms-файл для просмотра дерева страниц, поэтому он должен работать вместе.)

add_action( 'pre_get_posts' ,'exclude_this_page' ); function exclude_this_page( $query ) { global $current_user; if(is_array($current_user->roles)) { $page = $current_user->user_login; $test = get_page_by_title( $page ); $parent = $test->ID; $remove = array($test->ID); $test2 = get_pages('child_of=17&parent=17&sort_column=menu_order&depth=1'); $childs=array(); foreach($test2 as $page){ $childs[] = $page->ID; } $page_ids = get_all_page_ids(); $exclude_page_ids = array_diff($childs, $remove); } if(in_array('xxx', $current_user->roles)) { global $pagenow; if( 'edit.php' == $pagenow && 'page' == $query->get('post_type') ) $query->set( 'post_parent','17' ); $query->set( 'post__not_in', $exclude_page_ids ); return $query; } }