public function post_types_menu() {
		global $submenu;

		$post_types = papi_get_post_types();

		foreach ( $post_types as $post_type ) {
			if ( ! post_type_exists( $post_type ) ) {
				continue;
			}

			if ( $post_type === 'post' ) {
				$edit_url = 'edit.php';
			} else {
				$edit_url = 'edit.php?post_type=' . $post_type;
			}

			if ( ! isset( $submenu[$edit_url], $submenu[$edit_url][10], $submenu[$edit_url][10][2] ) ) {
				$post_type_object = get_post_type_object( $post_type );

				if ( $post_type_object->show_in_menu !== true ) {
					$submenu[$edit_url] = [
						10 => [
							__( 'Add New', 'papi' ),
							'edit_posts',
							'post-new.php'
						]
					];
				} else {
					continue;
				}
			}

			$only_page_type = papi_filter_settings_only_page_type( $post_type );
			$page_types     = papi_get_all_page_types( $post_type );
			$show_standard  = false;

			// Don't change menu item when no page types is found.
			if ( empty( $page_types ) ) {
				continue;
			}

			if ( count( $page_types ) === 1 && empty( $only_page_type ) ) {
				$show_standard  = papi_filter_settings_show_standard_page_type( $post_type );
				$only_page_type = $show_standard ? '' : $page_types[0]->get_id();
			}

			if ( ! empty( $only_page_type ) && ! $show_standard ) {
				$submenu[$edit_url][10][2] = papi_get_page_new_url(
					$only_page_type,
					false,
					$post_type,
					[
						'post_parent',
						'lang'
					]
				);
			} else {
				$page  = 'papi-add-new-page,' . $post_type;
				$start = strpos( $edit_url, 'post_type' ) === false ? '?' : '&';

				$submenu[$edit_url][10][2] = sprintf(
					'%s%spage=%s',
					$edit_url,
					$start,
					$page
				);

				// Add menu item.
				add_menu_page(
					__( 'Add New', 'papi' ),
					__( 'Add New', 'papi' ),
					'read',
					$page,
					[$this, 'render_view']
				);

				// Remove the menu item so it's hidden.
				remove_menu_page( $page );
			}
		}
	}
public function post_types_menu() {
		global $submenu;

		$post_types = papi_get_post_types();

		foreach ( $post_types as $post_type ) {
			if ( ! post_type_exists( $post_type ) ) {
				continue;
			}

			if ( $post_type === 'post' ) {
				$edit_url = 'edit.php';
			} else {
				$edit_url = 'edit.php?post_type=' . $post_type;
			}

			if ( ! isset( $submenu[$edit_url], $submenu[$edit_url][10], $submenu[$edit_url][10][2] ) ) {
				$post_type_object = get_post_type_object( $post_type );

				if ( $post_type_object->show_in_menu !== true ) {
					$submenu[$edit_url] = [
						10 => [
							__( 'Add New', 'papi' ),
							'edit_posts',
							'post-new.php'
						]
					];
				} else {
					continue;
				}
			}

			$only_page_type = papi_filter_settings_only_page_type( $post_type );
			$page_types     = papi_get_all_page_types( $post_type );
			$show_standard  = false;

			// Don't change menu item when no page types is found.
			if ( empty( $page_types ) ) {
				continue;
			}

			if ( count( $page_types ) === 1 && empty( $only_page_type ) ) {
				$show_standard  = papi_filter_settings_show_standard_page_type( $post_type );
				$only_page_type = $show_standard ? '' : $page_types[0]->get_id();
			}

			if ( ! empty( $only_page_type ) && ! $show_standard ) {
				$submenu[$edit_url][10][2] = papi_get_page_new_url(
					$only_page_type,
					false,
					$post_type,
					[
						'post_parent',
						'lang'
					]
				);
			} else {
				$page  = 'papi-add-new-page,' . $post_type;
				$start = strpos( $edit_url, 'post_type' ) === false ? '?' : '&';

				$submenu[$edit_url][10][2] = sprintf(
					'%s%spage=%s',
					$edit_url,
					$start,
					$page
				);

				// Add menu item.
				add_menu_page(
					__( 'Add New', 'papi' ),
					__( 'Add New', 'papi' ),
					'read',
					$page,
					[$this, 'render_view']
				);

				// Remove the menu item so it's hidden.
				remove_menu_page( $page );
			}
		}
	}
public function post_types_menu ( ) { global $ submenu ; $ post_types = papi_get_post_types ( ) ; foreach ( $ post_types as $ post_type ) { if ( ! post_type_exists ( $ post_type ) ) { continue ; } if ( $ post_type === 'post' ) { $ edit_url = 'edit.php' ; } else { $ edit_url = 'edit.php?post_type=' . $ post_type ; } if ( ! isset ( $ submenu [ $ edit_url ] , $ submenu [ $ edit_url ] [ 10 ] , $ submenu [ $ edit_url ] [ 10 ] [ 2 ] ) ) { $ post_type_object = get_post_type_object ( $ post_type ) ; if ( $ post_type_object -> show_in_menu !== true ) { $ submenu [ $ edit_url ] = [ 10 => [ __ ( 'Add New' , 'papi' ) , 'edit_posts' , 'post-new.php' ] ] ; } else { continue ; } } $ only_page_type = papi_filter_settings_only_page_type ( $ post_type ) ; $ page_types = papi_get_all_page_types ( $ post_type ) ; $ show_standard = false ; // Don't change menu item when no page types is found. if ( empty ( $ page_types ) ) { continue ; } if ( count ( $ page_types ) === 1 && empty ( $ only_page_type ) ) { $ show_standard = papi_filter_settings_show_standard_page_type ( $ post_type ) ; $ only_page_type = $ show_standard ? '' : $ page_types [ 0 ] -> get_id ( ) ; } if ( ! empty ( $ only_page_type ) && ! $ show_standard ) { $ submenu [ $ edit_url ] [ 10 ] [ 2 ] = papi_get_page_new_url ( $ only_page_type , false , $ post_type , [ 'post_parent' , 'lang' ] ) ; } else { $ page = 'papi-add-new-page,' . $ post_type ; $ start = strpos ( $ edit_url , 'post_type' ) === false ? '?' : '&' ; $ submenu [ $ edit_url ] [ 10 ] [ 2 ] = sprintf ( '%s%spage=%s' , $ edit_url , $ start , $ page ) ; // Add menu item. add_menu_page ( __ ( 'Add New' , 'papi' ) , __ ( 'Add New' , 'papi' ) , 'read' , $ page , [ $ this , 'render_view' ] ) ; // Remove the menu item so it's hidden. remove_menu_page ( $ page ) ; } } }
Setup menu items for real post types.
Setup menu items for real post types .