Wikit Framework Documentation
Wikit is WDG's internal WordPress development framework that provides a robust foundation for building custom WordPress sites. It includes core functionality, reusable Gutenberg blocks, and established patterns for common development tasks.
Framework Components
wikit-core
The foundational PHP classes and utilities that power the framework:
PostType- Base class for registering custom post typesTaxonomy- Base class for registering custom taxonomiesPostTypeTerm- Associates taxonomies with post typesBreadcrumb- Breadcrumb navigation system- Additional utilities and helpers
wikit-theme
Contains 50+ custom Gutenberg blocks and the theme foundation:
- Located in
/wikit-theme/block-editor/blocks/ - Each block has its own directory with
block.json, styles, and scripts - Blocks follow WordPress block API standards
wikit-app
The application layer where site-specific functionality is implemented:
- Custom post types (in
src/PostType/) - Custom taxonomies (in
src/Taxonomy/) - Site-specific business logic
wikit-facets
Advanced faceted search and filtering system for WordPress queries.
wikit-events
Events package: the event post type, add-to-calendar services (iCal, Google, Office 365), and the event block-editor blocks.
wdg-mu
The shared WDG mu-plugins collection. Not a Wikit package, but core WDG code that ships across client sites: security headers, login and REST hardening, two-factor enforcement, cron running, host-specific shims, and similar single-file drop-ins. It is cloned into repositories/ and indexed into the same wdg_framework collection as the Wikit packages.
Project Architecture
In the WDG development environment, Wikit serves as the shared foundation across all projects:
- Wikit Framework - Core files are shared across all projects
- Project Repositories - Each client project can:
- Extend Wikit's base classes
- Add custom post types and taxonomies
- Override or extend blocks
- Add project-specific functionality
Key Concepts
Inheritance Pattern
Projects extend Wikit functionality rather than modifying core files:
namespace WDG\App\PostType;
use WDG\Core\PostType;
class CustomType extends PostType {
// Project-specific implementation
}Repository as wp-content
Projects can use their entire repository as the wp-content directory, allowing version control of themes, plugins, and uploads.
Documentation Sections
Core Patterns
- Creating Custom Post Types
- Working with Taxonomies
- Singleton Pattern
- WordPress Hooks
- Extending Core Classes