Plug-ins hierarchy

Below are a subset of the framework’s plugins, each one of them implementing a specific layer of functionalities. They are list down from lower layers (i.e. the core, the kernel) to higher layers.

Core plugins


This is the heart and soul of the framework. It contains the logic for generating the output in JSON format, in class PoP_Engine, it introduces the abstract base classes for all processors, namely class PoP_ProcessorBase, class PoP_Processor_TopLevelsBase, class PoP_Processor_PageSectionsBase, class PoP_Processor_BlocksBase and class PoP_Processor_BlockGroupsBase, and it provides the Processor Manager, to manage all processors for all templates, in class GD_Template_Processor_Manager.



Implementation of the core javascript modules for consuming/interacting with the data provided by the PoP Engine, mainly popManager and Handlebars helper “enterModule.

pop-engine and pop-frontendengine are separated, so that it is possible to install only pop-engine to export the website’s data to be consumed by 3rd parties.



This plugin implements the API for exporting the website’s data, in JSON format, using WordPress functions. It provides core dataloaders, such as class GD_DataLoader_PostList to load posts, and fieldprocessors, such as class GD_DataLoad_FieldProcessor_Posts to export the posts’ data.



Implementation of an abstract base block template that shall be used all throughout the application: class GD_Template_Processor_BlocksBase (configuration), block.tmpl (javascript template).



Addition of Twitter Bootstrap as the front-end framework. From this layer onwards, plugins will assume that Bootstrap is installed, and use its css classes (“btn btn-default”, “img-responsive”, etc) and js methods (carousel, modals, etc).

Bootstrap’s ‘tabs’ js method is used to load several pages concurrently in a PoP website. Its implementation is done in class GD_Template_Processor_TabPanePageSectionsBase (configuration) and pagesection-tabpane.tmpl (javascript template).



Collection of processors for a PoP website, such as a single post layout, in class GD_Template_Processor_FullViewLayoutsBase (configuration) and layout-fullview.tmpl (javascript template), and a list-of-posts layout, in class GD_Template_Processor_PreviewPostLayoutsBase (configuration) and layout-previewpost.tmpl (javascript template).



Addition of Service Workers, to make the PoP application behave Offline First.


Themes and theme-related plugins


Implementation of a theme, called “Wassup”, for a PoP website. The plugin provides the functionalities and visual layouts of the theme; the actual theme has mostly configuration but very little or no functionality. This is because:

  • PoP does not use WordPress’ hierarchy templates (archive.php, single.php, home.php, etc), replacing these with Handlebars templates in the front-end, which are shipped in different plugins.
  • PoP enables WordPress websites to export their data to aggregators, for which the aggregator website may need to install a plugin in the source website to have the data exported in the needed format.

PoP ships with theme GetPoP Demo, which is an implementation of “Wassup”.



Implementation of specific functionalities for theme ‘GetPoP Demo’.


Integrations with 3rd parties

aryo-activity-log-pop and aryo-activity-log-popprocessors

Integration with plugin Aryo Activity Log for showing user notifications.


events-manager-pop and events-manager-popprocessors

Integration with plugin Events Manager for adding events and locations in the website.



Integration with plugin User Role Editor for providing several types of user account, allowing users to signup as either an organization or an individual.


wordpress-social-login-pop and wordpress-social-login-popprocessors

Integration with plugin WordPress Social Login, to allow users to login using Twitter, Facebook, etc accounts.

Sign up to our newsletter:

Welcome to the PoP framework!
Break the information monopoly

the PoP framework is open source software which aims to decentralize the content flow and break the information monopoly from large internet corporations. Read more.