The question remains, where should you put functionality? In your WP theme or WP plugin?
The right answer is that functionality belongs to WP plugin, not theme.
First, what is functionality in WordPress?
Functionality is a range of operations that can be run to serve a purpose in a system. Functionality that exists to improve the WordPress core and to address brand new features belongs in a WordPress plugin. Functionality that serves the purpose of supporting a theme’s appearance should belong to the theme.
What is the common belief about functionality in WordPress? Functionality should be in the WordPress theme. But this is not the case.
People who believe these are usually WordPress theme providers on Themeforest and other premium theme providers. Why? Due to the huge demand of the market, they create WordPress themes with full on functionality. The market (end-users) demands theme that can do anything without having to use plugin.
They believe that WordPress plugins are less secure and make sites load slowly. The result? WordPress theme market is saturated and full of bloated themes with unnecessary features.
Why should we move functionality from WordPress themes to plugins?
WordPress is all about simplicity. WordPress initially was not designed for themes to bear any website functionality.
It’s beneficial for theme authors too. There’s much less restriction making a theme as well as more room for your creativity.
There is less work for theme authors and more time to focus on other things. So, when you plan to make your WordPress theme company, you don’t have to worry about much, except maybe 公司登記.