Создание новой страницы с предопределенной родительской страницей

У меня есть блог с очень сложной структурой страницы (например, 4 уровня иерархии).

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

По этой причине я хотел бы добавить кнопку в панель администратора frontend, которая указывает на post-new.php , но с параметром «идентификатор родительской страницы». Фактически, кнопка позволит вам перейти к желаемой родительской странице на первой странице, а затем щелкнуть ссылку «добавить новую страницу здесь», которая приведет вас к фоновому серверу с выбранной исходной страницей.

Однако, кажется, невозможно добавить параметры post-new.php и связанный запрос функции был закрыт в post-new.php WordPress.

Кто-нибудь знает решение, которое не требует взлома ядра? Одна из моих идей заключалась в подключении к крюку, который запускается до создания нового элемента, вытаскивая родительскую страницу из параметра GET и устанавливая его в текущем элементе. Если это жизнеспособный способ, я был бы признателен за простой указатель, который будет использоваться.

Вы правы на отметке с GET, что, вероятно, будет проще всего использовать.

Попробуй это:

 Add_Child_Page::on_load(); class Add_Child_Page { static function on_load() { add_action( 'init', array( __CLASS__, 'init' ) ); add_action( 'admin_init', array( __CLASS__, 'admin_init' ) ); } static function init() { add_action( 'admin_bar_menu', array( __CLASS__, 'admin_bar_menu' ), 90 ); } static function admin_bar_menu( $wp_admin_bar ) { if( is_page() ) { $wp_admin_bar->add_node( array( 'id' => 'add_child_page', 'title' => 'Add Child Page', 'href' => add_query_arg( array( 'post_type' => 'page', 'page_parent' => get_the_ID() ), admin_url( 'post-new.php' ) ), ) ); } } static function admin_init() { add_filter( 'page_attributes_dropdown_pages_args', array( __CLASS__, 'page_attributes_dropdown_pages_args' ) ); } static function page_attributes_dropdown_pages_args( $dropdown_args ) { if ( ! empty($_REQUEST['page_parent']) ) $dropdown_args['selected'] = (int) $_REQUEST['page_parent']; return $dropdown_args; } }