Create page like custom post type list in WordPress

One option is to set has_archive to false when you register the CPT. Then, create a Page with the same slug. So if your CPT is “mycpt” then create a Page at http://example.com/mycpt/.

From there, set up a custom Page template to act like an archive, but you can also (optionally) add content in the Page itself to appear above or below the individual CPT posts. You’ll also be able to add all the regular Page attributes like postmeta.