This guide is for Drupal developers who want to build great sites with WordPress.

We teach how to build sites using WordPress, using similar techniques and workflow as you have with Drupal. This allows you to retain the power and flexibility of Drupal while enjoying the simplicity and usability of WordPress.

Part 1 – Basic Drupal Features and WordPress Equivalents

Technically, Drupal and WordPress are extremely similar. The following table summarizing key site-building elements in Drupal and their WordPress equivalents.

Site-element Drupal WordPress (using Types plugin Notes
Basic content elements Nodes Posts WordPress began as a blogging platform, so everything initially produced was a post. “Pages” and then custom post types were later added. Fortunately, all content remains saved in a single “posts” table, which is similar to Drupal’s nodes table.
Fields Fields Custom fields, User fields Usually, when explaining custom fields in WordPress, we refer to a post-meta table. Each entry in the table includes a key and a value. The entry belongs to a post. In addition, WordPress uses a table for user metadata. The metadata table contains entries that belong to users.
Blocks Blocks Widgets Usually in WordPress, themes register widgets areas, allowing site admins to drag functions into them. Many plugins and themes create custom widgets that offer unique functionality.
Menus Menus Menus Menu functionality in WordPress and Drupal is similar.

Part 2 – Drupal Modules are WordPress Plugins

Both Drupal and WordPress cores come with basic functionality. Moreover, both systems are easy to extend. In Drupal, extensions are called modules. In WordPress, they are called plugins.

We explain how to migrate from Drupal to WordPress by using Toolset plugins.

Functionality Drupal WordPress
Content types and fields Core Types plugin
Content display engine Views module (in Drupal-8’s core) Views plugin
Access control Core Access plugin
Forms Webforms, Formblock modules CRED plugin
Layout design Panels module Layouts plugin

Part 3 – Setting up Content Types and Fields

Drupal Version 7 and higher lets you define custom content types without the need to use any module.

WordPress core supports custom content types, but does not use a graphical user interface (GUI) to define them. Types plugin allows you to register content types, fields, and custom taxonomy. Types plugin acts as a GUI for WordPress core functionality. This means that your content will reside in standard WordPress tables, making it easily accessible for themes and other plugins.

First, you install Types plugin.

What Drupal WordPress (Types plugin)
Register content types Define new content types via Structure >> Content types. Different sections are organized in tabs.drupal-content-type Go to Types >> Types and taxonomies and create a new type. All options are presented on a single page. Usually, completing the name and slug (machine name) is sufficient.wp-content-type
Register fields Fields are under the Content Types screen, in the “Manage Fields” tab.drupal-fields Field management is separate from content management. Go to Types >> Custom fields to create field groups and connect them with multiple content types.types-fields
Connecting different content types You can use Entity Reference to connect different node types and Relationship to filter them in Views. Types allow you to connect different content types as parents and children.These connections are the basis for relational databases with natural hierarchies.The Post Relationship controls are located at the bottom of the post-type editor.

Views plugin knows these relations, so you can filters content by parents.

wp-post-relationship

Organize content with taxonomy Drupal taxonomy appears under Structure >> Taxonomy.drupal-taxonomy Go to Types >> Types and taxonomies, and then click to add a new taxonomy. You can choose between “flat” taxonomy, which is similar to tags and “hierarchical” taxonomy that is like categories. You can then connect taxonomy to any content type.wp-taxonomy

Part 4 – Designing Templates for Content

Both Drupal and WordPress use a templates system, which allows you to design single-item templates. WordPress Views plugin includes Content Templates, which you can use to design templates without having to edit PHP. Content Templates contain a mixture of HTML and fields, and they allow developers to select fields using a convenient GUI.

What Drupal WordPress (Types plugin)
Design single-item templates Create .tpl files for different content types. Create single .php files for different content types or use Content Templates in Views plugin.

Part 5 – Loading Content from the Database and Displaying it on the Front End

Once content has been registered, you can create the Views that display them. A View loads and displays content from the database.

It you are accustomed to using Drupal Views, you will feel right at home with the WordPress Views plugin. WordPress Views is written from scratch and has no relationship with Drupal Views code. It has similar basic features and emphasizes usability and performance.

What Drupal Views WordPress Views
Select the content to load Select the content type and filters under filter criteria.drupal-content-filter The Query Section in the View lets you choose the content type and apply various filters.view-basic-filter
Design the output Select the layout style from Views GUI. To create custom output, you must edit the .tpl file for the content type you intend to use.drupal-view-styles Go to the Layout HTML section and choose the output style. Then, add fields to it. Finally, you can edit the HTML in the View loop just as you edit WordPress content.wp-views-layout-1
Choose where to display You can display Drupal Views at a given path (URL) or by adding the View to the site’s navigation menu.drupal-view-display-location You can insert WordPress Views into content as shortcodes or by dragging them as widgets into widget areas.insert-the-view-to-content
Create custom searches Every filter option in Drupal has a feature called “expose”. Selecting it opens the filters to front-end settings.expose-filter WordPress Views contains a filter HTML section, in which you can add inputs to filters.This allows you to have full control of the content of exposed filters and the appearance of the filter input in the View.add-filter-field

In general, the Drupal Views interface is more compact than that of WordPress. By contrast, the WordPress Views interface is more detailed and allows you to edit the HTML for every element directly in the View editor.

Part 6 – Creating Forms for Front-End Content Creation

CRED Front-end EditorDrupal has several great “forms” modules. Because the different form modules function quite differently, we will simply describe how to generate content-editing forms using CRED plugin.

When you create CRED forms, you choose:

  • whether the form edits or creates content
  • the content type on which the form operates
  • the HTML design of the form and the fields it includes
  • notification emails generated when the form is submitted

CRED works together with Types. Thus, if you have set a field as “required”, that field will also be required when editing the content from the front end.

CRED has a scaffolding feature that allows you to generate fully-functional and attractive forms in a single click. The form will include the HTML and all shortcodes for fields. After you create the form with the scaffold, you can edit its HTML freely to obtain the exact appearance you want.

Part 7 – Controlling Access to Different Parts of the Site

Drupal core includes a robust access control functionality. WordPress the infrastructure for access control and for registering custom roles. However, it requires a plugin to display access control options. Access plugin provides this GUI and allows fine-grained control over all access options.

Define custom roles

You can add roles and change their basic settings via People >> Roles.

drupal-people-roles

Access plugin allows you to add custom roles, set their ‘levels’, and assign them capabilities. Capabilities determine what people can do in WordPress.

roles-editing-in-access

Determine the admin screens users can access

Go to People >> Permissions to see a full matrix of the different admin actions users can perform.

drupal-people-permissions

Click on Change permissions next to the role to indicate the actions these users can perform in the WordPress admin.

change-permissions

Control what users can do with contentDifferent modules, such as Nodeaccess, exist for controlling access to nodes. Nodeaccess allows you to control read access (viewing), editing-access and delete-privileges.Access includes detailed control of different roles and the actions individual users can perform on content.

content-access-control

Determine what visitors see on the site’s front endNodeaccess can also help you with read access to the front end.You can control what people see when they do not have read permission for content. This includes 404 pages and customized “no access” templates for content. You can also include and exclude partial content of a page based on access rights.

What Drupal access control WordPress Access

Part 8 – Drag-and-Drop Layouts

Layouts Drag-and-Drop EditorDrag-and-Drop design lets you build sites faster. It also allows less technical users to edit the site’s structure, without having to learn to code. Drupal’s favorite drag-and-drop module is Panels. Toolset package offers Layouts.

Layouts plugin operates only with Bootstrap CSS. If you want to use the plugin, you can start with one of our reference Bootstrap themes or integrate it into your own Bootstrap-based theme. Integration requires editing a few lines of PHP in the theme’s template files.

Among Layouts’ features:

  • allows your clients to easily change the structure of pages or the entire site without having to master the underlying HTML and CSS
  • completely integrated with Views and CRED so you can create View cells and CRED forms directly inside the layout editor
  • supports hierarchical design, which means you can create a parent layout for the frame of the site and child layouts for different pages
  • can be used with any Bootstrap-based theme

Some Themes and Plugins Cost Money in WordPress

In Drupal, asking for money for themes and modules is still considered taboo. In WordPress, many quality themes and plugins are commercial.

If you have been in the web-development business for a while, you probably know that there are no “free lunches”. Perhaps this is why you are considering a move to WordPress.

When you purchase commercial themes and plugins, you spend money, but you also save money. Any purchase entitles you to support, which can save you precious time and valuable money.

Specifically, with Toolset plugins, you receive:

  • Unlimited sites – you can use Toolset plugins on all your sites as well as on sites you build for your clients.
  • Automatic updates from the WordPress admin – saves you time downloading updates and installing them manually.
  • Expert support – our support team is comprised entirely of developers. We provide support five days per week, 19 hours per day. When you are working, we are too.

Everyone claims their products are stable and well maintained. Toolset team includes developers, supporters, testers and designers who are all working full time on Toolset plugins.

Thinking about moving to WordPress and need some help? Ask us by leaving a comment.