One of million reasons why people love Wordpress because of the freedom to build anything we want. But in some case, we need more than a blog for our web application. We need to build some functionality that WordPress doesn't have especially to have some route or access to our table (outside of WordPress Table), then Themosis becomes your silver lining. Themosis provides an object-oriented development structure to code professional WordPress applications and is bundled with helper classes built on top of some of the most popular PHP packages: Symfony, Illuminate and more. What Illuminate? yup, Illuminate that make Laravel become famous PHP framework this day. And guess what, Themosis has MVC architectural that allow us to use Eloquent ORM (Oh thank God, I don't need to write that bunch of SQL statement). And psst... it uses composer too, so you can easily add any PHP packages thanks to Composer support.

So lets we go dive some of the cool features of Themosis :

Project Structure

+-- bootstrap/
+-- config/
|   +-- environments/
|   +-- environment.php
|   +-- shared.php
+-- htdocs/
|   +-- cms/
|   +-- content/
|   +-- index.php
|   +-- wp-config.php
+-- library/
+-- storage/
+-- vendor/
+-- .env.local
+-- composer.json
+-- wp-cli.yml

As we can see, after you follow installation process on documentation. Themosis already include WordPress on its project. So basically we don't need to touch WordPress core package anymore.


Themosis allow us to declare WordPress or custom routes, controllers, models and views to build your application. This is example of route in Themosis

Route::get('users/{name}', function ($name) {
    $user = Users::getByName($name);
    return view('account.profile', ['user' => $user]);

Route::get('home', function ($post, $query) {
    return view('pages.home', [
        'posts' => $query->get_posts()

Themosis take over the root of the site and handle a request to the route first. So we can hook the WordPress easily to our controller and then throw the response over our view. Themosis framework comes with a basic system of models and if you're using the full stack of the Themosis framework, you can extend your model class to use the popular Laravel Eloquent ORM. A model will store the methods/functions that manipulate your data. You can perform actions to read, update and delete data from your WordPress database, using both WordPress core functions and/or Illuminate/Database API.


In other hands to handle the application views (HTML), the Themosis framework comes with a view API that extends the illuminate/view package. Besides providing the same API found in the Laravel framework, the Themosis framework views come with two great template engines Blade and Twig. Views contain the HTML of your website/application. They provide a convenient way of separating your controllers and application logic from your presentation logic.

WordPress Helper

Themosis also provide quickly set custom post types, custom taxonomies, metabox, custom fields, administration pages, settings and more with built-in classes.


Themosis can enhance and push forward your WordPress application by accessing great PHP packages with Composer.

There are stil a lot to explore about Themosis. You can check official documentation and build an entire WordPress application, a custom theme or plugin with the Themosis framework.