A comprehensive WordPress plugin designed as a program marketing powerhouse for educational institutions. PedalCMS provides a complete content management system for academic programs, courses, faculty, and student information.
- Programs: Comprehensive program listings with detailed information
- Courses: Course catalog with scheduling and prerequisites
- Subpages: Flexible program sub-content (Apply, Cost, Faculty, FAQs, etc.)
- Program Types: Categorization and filtering system
- Faculty & Staff: Complete team directory with profiles
- Person Categories: Flexible categorization system
- Contact Information: Structured contact details and job titles
- Photo Management: Professional headshot integration
- Course Catalog: Detailed course information and descriptions
- Prerequisites: Course dependency management
- Scheduling: Session and timing management
- Subjects: Course categorization by academic subject
- Custom Blocks: Gutenberg-compatible content blocks
- Contact Info Blocks: Structured contact information display
- Job Title Blocks: Professional title and role management
- FAQ System: Organized frequently asked questions
- Colleges: High-level institutional organization
- Departments: Academic department management
- Instruction Modes: Online, hybrid, in-person classifications
- WordPress: 5.6 or higher
- PHP: 8.2 or higher
- MySQL: 5.6 or higher
- Advanced Custom Fields (ACF): Required for full functionality
- Download the latest release from GitHub
- Navigate to Plugins > Add New > Upload Plugin
- Upload the
pedalcms.zipfile - Click Install Now and then Activate
- Download and extract
pedalcms.zip - Upload the
pedalcmsdirectory to/wp-content/plugins/ - Activate the plugin through the WordPress admin
composer require pedalcms/pedalcmsPedalCMS includes a complete template system for displaying content:
single-program.php- Individual program pagessingle-course.php- Individual course pagessingle-person.php- Faculty/staff profile pages
archive-program.php- Program listingsarchive-course.php- Course catalogarchive-person.php- People directory
taxonomy-program-type.php- Programs by typetaxonomy-person-cat.php- People by categorytaxonomy-college.php- Content by collegetaxonomy-department.php- Content by department
| Post Type | Description | Slug |
|---|---|---|
| Programs | Academic programs and degrees | pdl_program |
| Courses | Individual courses and classes | pdl_course |
| People | Faculty, staff, and personnel | pdl_person |
| FAQs | Frequently asked questions | pdl_faq |
| Taxonomy | Description | Used For |
|---|---|---|
| Program Types | Categories of programs | Programs |
| Person Categories | Faculty/staff classifications | People |
| Colleges | Institutional divisions | Programs, Courses, People |
| Departments | Academic departments | Programs, Courses, People |
| Subjects | Academic subjects | Courses |
| FAQ Categories | FAQ organization | FAQs |
| Instruction Modes | Delivery methods | Programs, Courses |
PedalCMS provides numerous template tags for theme development:
pdl_program_title() // Get program title
pdl_program_subpages() // Get program subpages
pdl_get_the_term_list() // Get formatted taxonomy termspdl_course_prerequisites() // Get course prerequisites
pdl_course_schedule() // Get course schedulepdl_person_contact_info() // Get contact information
pdl_person_job_title() // Get job title-
Clone the repository
git clone https://github.com/PedalCMS/pedalcms.git cd pedalcms -
Install dependencies
composer install npm install
-
Start development environment
npm run env:start
composer run lint # Run PHP CodeSniffer
composer run format # Auto-fix code formatting
composer run test # Run PHPUnit tests
composer run coverage # Generate test coveragenpm run env:start # Start WordPress environment
npm run env:stop # Stop WordPress environment
npm run test:e2e # Run Playwright end-to-end tests
npm run test:e2e:headed # Run Playwright tests in headed modeThis project follows:
- WordPress Coding Standards for PHP
- PSR-2 compliance where applicable
- @wordpress/eslint-plugin for JavaScript
- Prettier for code formatting
PedalCMS uses WordPress core's official PHPUnit mechanism (WP_UnitTestCase) via wordpress-tests-lib.
# 1) Install WordPress test suite and core test files.
composer run test:setup
# 2) Run plugin tests against the official WP test bootstrap.
composer run testYou can override setup defaults with environment variables:
WP_TESTS_DB_NAME=pedalcms_test WP_TESTS_DB_USER=root WP_TESTS_DB_PASS=root composer run test:setup# Run all tests
composer run test
# Run multisite tests
composer run test:multisite
# Generate coverage report
composer run coverage:full- Copy
.env.e2e.exampleto.env.e2eand set credentials. - Ensure a WordPress site is running and reachable at
E2E_BASE_URL.
npm run test:e2ePedalCMS\Core\
βββ CustomPostType # Base class for post types
βββ CustomTaxonomy # Base class for taxonomies
βββ CustomBlock # Base class for Gutenberg blocks
βββ TemplateManager # Template loading and management
βββ SubpageManager # Program subpage management
βββ Plugin # Main plugin orchestration
- Custom Post Types: Program, Course, Person, FAQ
- Custom Taxonomies: Program Types, Person Categories, etc.
- Template System: Comprehensive template hierarchy
- ACF Integration: Advanced Custom Fields support
- Block Editor: Gutenberg block compatibility
PedalCMS is designed to work with any WordPress theme. Include the following in your theme:
- Template files (optional, uses defaults if not present)
- Styling for PedalCMS content types
- Template tags for custom functionality
All PedalCMS templates include semantic CSS classes:
.program-header /* Program page headers */
.course-info /* Course information blocks */
.person-profile /* Person profile containers */
.faq-item /* Individual FAQ items */We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
- Use GitHub Issues
- Provide detailed reproduction steps
- Include WordPress and plugin version information
This project is licensed under the GPL-2.0+ License - see the LICENSE file for details.
- Website: https://pedalcms.com
- Documentation: https://pedalcms.com/docs
- Issues: GitHub Issues
- Community: WordPress.org Plugin Forum
- REST API enhancements
- Additional Gutenberg blocks
- Import/Export functionality
- Advanced reporting dashboard
- Multi-language support
- Integration with learning management systems
- 0.3.0 - Current version with enhanced template system
- 0.2.0 - Added custom blocks and improved ACF integration
- 0.1.0 - Initial release with core post types and taxonomies
Made with β€οΈ for educational institutions by the PedalCMS team