Not as vague as you might think. This is a very commonly used approach. What I would suggest you focus on is creating a custom post type. This will give you the admin menu item, categories (or any taxonomy structure you like) and many other features.
CPTs are very simple to register and modify. They are perfectly suited for storing data such as products in a store, destinations for a travel site, etc.
Full documentation for the register function ( register_post_type() ) can be found here
Related Posts:
- How to Move My Page into WordPress dashboard main menu
- Add custom admin menu item for pages using a certain template
- Backend option to include a javascript file on specific pages?
- Dashboard–> All Pages “How to create folders?”
- Add a Menu Link (to a WordPress Page) in the Admin Menu/Sidebar
- Hiding Page by Title from Editing
- Force page to open in html mode
- How to update the counter of private pages in the dashboard?
- Disable ADD PDF media button on rich text editor
- pre-existing data, and entities
- Translate dashboard metabox
- How to sorted Parent Page in WP-admin
- Shortcode runs when editing page
- When would it be best to hook AJAX functions on a back-end page?
- How to see the dashboard of a downloaded wordpress website?
- Editing pages from dashboard
- Custom admin menu for a selection of pages
- Missing page on wordpress “Pages” dashboard [closed]
- Dashboard show only published pages instead of all pages
- Add infinite scroll to content splitted post
- Check if wp-login is current page
- How to get current page ID outside the loop?
- Changing Admin Menu Labels
- Contact Form on WordPress Sites?
- Page returns 404 with POST variables, but not without
- Custom templates not showing up in template dropdown
- Get page id by template
- Using pre_get_posts on true pages and static front pages
- Get the content of a specific page (by ID)
- How to get page title with the page ID?
- Show more than 20 items in pages or posts edit dashboard
- Allowing user to edit only certain pages
- How to display last 3 posts (recent posts) in a static page?
- How to give paged links custom title?
- How to set post slug when using wp_insert_post();?
- How can I keep the content of my pages version controlled?
- How to load javascript on custom page template?
- How to fix the admin menu margin-top bug in WordPress 5.5?
- How to configure WordPress to handle 75,000 pages?
- How to update page status from publish to draft and draft to publish
- Check if is on child-page of a particular page
- Change page template programmatically ?
- Conditional tag to check if ‘page.php’ is being used?
- Customizing the URLs of WordPress Login and Sign-up Pages?
- How to disable posts and use pages only
- featured image as background image on pages
- Check IF is a “single product page” and Check the “role” for a Redirect
- A check for if is parent page, if has children, if has grandchildren
- How to load JS and CSS only on specific Pages using is_page()?
- Listing pages which uses specific template [duplicate]
- Show Custom Taxonomy Inside Custom Menu
- Proper way to get page content
- Access the same page from multiple urls (wildcard)
- Create a page without adding a page in the Database
- Is there a way to change the default page template selection?
- Can I have two child pages of different parents with the same name?
- What methods to use to create small, editable pieces of text for static pages?
- Show Default Editor on Blog Page ( Administration Panel )
- Hide page visual editor if certain template is selected?
- What is the difference between $paged and $page?
- Add “external” link to admin menu in the backend
- multi page password protection
- Create a “Dummy” parent page for a hierarchy in page listing?
- How do I convert a page’s title to lower case?
- Get top level page parent title
- How to add a specific widget to only 1 page?
- Restrict admin access to certain pages for certain users
- page title, parent tilte and grand parent title
- How to add jQuery script to an individual page?
- WordPress page edit does not save selected template
- Creating a WordPress admin page without a menu for a plugin
- Add a Page without header and menus?
- What is an alternative to get_page_by_title()?
- Password protect page with multiple passwords
- Create pages automatically if they don’t exist
- Find empty pages or pages which have less than x characters
- Allow only new sub-pages to be created
- Set page template automatically based on parent
- Editing Complex Pages in Visual Mode
- Link section within page with slash (/) and not hash (#) without reloading the page
- Creating a template using a specific slug name, for a page with a parent page
- Can I display submenus in groups, using wp_list_pages?
- Is there a default template file for child pages / subpages?
- Get wp_get_attachment_url outside of loop
- Order by menu_order and title?
- Require title for pages
- WP Page and Subdirectory with same name
- Replace Dashes Before Title in Page List
- Add a new page to wordpress programmatically
- Get Permalink for the top level parent of child pages
- Proper method to restrict non logged users into certain pages
- How to redirect on particular page in wordpress? [closed]
- Get page id by title?
- What is the use of $page_title and how to use it?
- How to embed page content in a blog post
- Can I display the widget admin in the page admin?
- How to add or remove metabox each page separately?
- Some pages are missing from the Parent Page select in the Editor
- WordPress parent select need to be removed
- Manual excerpts for pages not working on Search