How do I migrate a Wordpress project to Craft CMS? How do I migrate my Wordpress project to Craft CMS?

What would be the best way?
At this point in time, you have a few options: 

Import Plugins

As of this post, there are a few partial import plugins available and rumors that a few others might be on their way.


Sprout Import - Sprout Import supports over 40 data types such as Entries, Users, Assets, Products, Orders, Forms, Email, and Redirects; and more can be added as needed via plugin integrations.
Feed Me - Feed Me is a Craft plugin for super-simple importing of content, either once-off or at regular intervals. With support for XML, RSS, ATOM or JSON feeds, you'll be able to import your content as Entries, Categories, Craft Commerce Products (and variants), and more.
Import - Handles Entries and allows you to map them to fields in
your Entries Sections 
EE/Craft Import - While this plugin has EE
in it's title, it looks like it's framed more around XML imports in
general and promotes itself as being a starting point if you have
other custom import needs. 


Import Service

Full disclosure, my company offers a migration service to help folks migrate to Craft.  We use a combination of a private plugin, custom scripts, and manual processes when necessary.  We find, in most cases, many things about your data architecture can be improved when migrating to Craft.  So, while an import plugin can help with some heavy lifting, being able to make architecture decisions on how to import certain types of content outside of what a plugin would allow is useful for improving user experience and getting the most of of Craft.  For example, content that fits nicely in Singles and Matrix Fields don't always have equivalents in other CMSs, yet frequently other CMSs have content that fits these use cases.


The Great Migration


Do It Yourself

If you want to roll up your sleeves, you can create a utility plugin or script for your own needs.  If you need to go this route, you probably want to import your data using Craft's Service Layer and the save methods for each of the individual Elements you are importing.

You can see some examples of this in the plugins available on GitHub above, or read up more on the service layer in the Craft docs.  A good place to start may be the Entries Service.

You will need to get your data into a format that matches the EntryModel and then you can pass that information to the saveEntry method:

craft()-&gt;entries-&gt;saveEntry($entry)


That's a fairly simple explanation, but the gist of where to start. All of the other Elements are going to have similar Models and save methods you can use to import your data.