Fügen Sie Seiten automatisch zum primären Menü mit functions.php hinzu

Ist es möglich, neue Seiten automatisch über functions.php zum Hauptmenü hinzuzufügen?

Dieses spezielle Thema wird auf einer speziellen Version von Multisite bereitgestellt, so dass das Kontrollkästchen, das über den Admin verfügbar ist, keine Option ist.

Ich kann nichts im Codex oder hier finden.

Solutions Collecting From Web of "Fügen Sie Seiten automatisch zum primären Menü mit functions.php hinzu"

Keine spezifische Antwort, aber zu lang für einen Kommentar. Sie können auch versuchen, den Code zu sehen, den WordPress Core selbst verwendet. Ich weiß, dass Sie gesagt haben, dass Sie das Kontrollkästchen zum automatischen Hinzufügen von Seiten nicht verwenden können, aber Sie könnten darüber nachdenken, wie es verwendet wird. Ein bisschen herumstöbern (mit einem anständigen Texteditor, den Sie in der gesamten WordPress-Code-Basis nach einem Satz suchen können) im WordPress-Code verrät:

 /** * Automatically add newly published page objects to menus with that as an option. * * @since 3.0.0 * @access private * * @param string $new_status The new status of the post object. * @param string $old_status The old status of the post object. * @param object $post The post object being transitioned from one status to another. * @return void */ function _wp_auto_add_pages_to_menu( $new_status, $old_status, $post ) { if ( 'publish' != $new_status || 'publish' == $old_status || 'page' != $post->post_type ) return; if ( ! empty( $post->post_parent ) ) return; $auto_add = get_option( 'nav_menu_options' ); if ( empty( $auto_add ) || ! is_array( $auto_add ) || ! isset( $auto_add['auto_add'] ) ) return; $auto_add = $auto_add['auto_add']; if ( empty( $auto_add ) || ! is_array( $auto_add ) ) return; $args = array( 'menu-item-object-id' => $post->ID, 'menu-item-object' => $post->post_type, 'menu-item-type' => 'post_type', 'menu-item-status' => 'publish', ); foreach ( $auto_add as $menu_id ) { $items = wp_get_nav_menu_items( $menu_id, array( 'post_status' => 'publish,draft' ) ); if ( ! is_array( $items ) ) continue; foreach ( $items as $item ) { if ( $post->ID == $item->object_id ) continue 2; } wp_update_nav_menu_item( $menu_id, 0, $args ); } } 

Dieser Code wird ausgeführt auf:

 add_action( 'transition_post_status', '_wp_auto_add_pages_to_menu', 10, 3 ); 

Vielleicht weist Sie das in die richtige Richtung und vielleicht können Sie kopieren, was WP tut, um etwas Ähnliches zu tun.