{"id":24969559,"url":"https://github.com/jmanzo/duilo-wordpress-plugin-framework","last_synced_at":"2026-05-04T03:33:28.899Z","repository":{"id":260671460,"uuid":"367174801","full_name":"jmanzo/duilo-wordpress-plugin-framework","owner":"jmanzo","description":"Duilo is a Wordpress Plugin Framework built to help with quick plugin integrations in my own workflow, also with learning the OOP plugin construction for Wordpress. I wanted to share this contribution with all the software developers and collaborators to help with the Wordpress Plugin Construction.","archived":false,"fork":false,"pushed_at":"2021-06-09T11:06:35.000Z","size":114,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-03T14:46:36.428Z","etag":null,"topics":["php","php-framework","php7","plugin","wordpress"],"latest_commit_sha":null,"homepage":"https://jdevm.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmanzo.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-13T21:07:05.000Z","updated_at":"2022-02-12T09:25:52.000Z","dependencies_parsed_at":"2024-11-01T18:35:12.226Z","dependency_job_id":null,"html_url":"https://github.com/jmanzo/duilo-wordpress-plugin-framework","commit_stats":null,"previous_names":["jmanzo/duilo-wordpress-plugin-framework"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmanzo%2Fduilo-wordpress-plugin-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmanzo%2Fduilo-wordpress-plugin-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmanzo%2Fduilo-wordpress-plugin-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmanzo%2Fduilo-wordpress-plugin-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmanzo","download_url":"https://codeload.github.com/jmanzo/duilo-wordpress-plugin-framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246140547,"owners_count":20729798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","php-framework","php7","plugin","wordpress"],"created_at":"2025-02-03T14:40:12.978Z","updated_at":"2026-05-04T03:33:23.869Z","avatar_url":"https://github.com/jmanzo.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Duilo Plugin Framework\n\nDuilo is a Wordpress Plugin Framework built to help with quick plugin integrations in my own workflow, also with learning the OOP plugin construction for Wordpress. I wanted to share this contribution with all the software developers and collaborators to help with the Wordpress Plugin Construction.\n\nI hope you like this framework, which is still under construction. Any contribution or suggest will be accepted and will be taken to improve this new custom project.\n\n## Installation\nTo install, first you need to instantiate the `Init` Class, where you going to create all your features. Just to start, in your main plugin initial file, set this:\n\n```\nif ( file_exists( dirname( __FILE__ ) . '/vendor/autoload.php') ) {\n    require_once dirname( __FILE__ ) . '/vendor/autoload.php';\n}\nif ( class_exists( 'Inc\\\\Init' ) ) {\n\n    Inc\\Init::register_services();\n\n}\n```\n\nYou'll need to reference and start developing your functions and features in this Init class.\n\nIn the Init Class, you'll see a `get_services` method, where you need to set up your needed classes. So, for example, if you want a API Class instantiated here, create the class and make sure you add a `register` method inside. This method will be used to initialize all the logic of your plugin.\n\n## Pages, subpages and menus\nThe menu pages and subpages can be set inside the `PagesController` Class, located in the `includes/Src` folder. The methods that can be modified are `setPages` and `setSubpages`. Automatically, following the same format, you'll see your pages and submenu pages in the admin panel of your Wordpress.\n\n## Set Option Groups, Sections and fields\nTo set the groups, sections and fields, you need to edit the `SettingsController` Class inside `includes/Src` folder. On `setManagers` method, you'll see a `$this-\u003emanager` property where in the same current order of this example, can be set.\n\n## Register new CustomPostTypes\nTo register new custom post types, you should set them into the `CustomPostTypeController` in the Src folder. Using the `$this-\u003ecustom_post_types` property, you can fill the list of arrays which will be used to create the new custom post types.\n\nAlso, you can take a look in the official documentation to know what arguments can be used for new custom post types at this link: https://developer.wordpress.org/reference/functions/register_post_type/\n\n## UI options\nThere are 6 Form UI fields for the administration panel. You can use either `uiToggleField`, `textField`, `textareaField`, `checkboxField`, `radioField` or `dropdownField`. Those values can be set on the Admin Controller at `includes/Controller.php` with the `$this-\u003emanager` declarated property and the key `callback`. It's where you have to set your option_groups, sections and fields.\n\nYou'll see 6 examples of field declarations in the location.\n\n## Adding new Controllers\nWith the purpose to make this as modular and easy to handle as possible, you can add new controllers to this plugin. To do that, just add a new class following convention `NameController`, and go to the `Init` Class and add your controller class to the `get_services` method. You'll find an array with all needed class and controllers currently being used.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmanzo%2Fduilo-wordpress-plugin-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmanzo%2Fduilo-wordpress-plugin-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmanzo%2Fduilo-wordpress-plugin-framework/lists"}